2016-03-14 3 views
3

Это, вероятно, простой вопрос, но я не могу найти ответ нигде. У меня есть график, где я добавляю новые графики динамически. Теперь мне нужно удалить некоторые сюжеты, однако мне нужно определить сюжет по id, а не по индексу.Zingchart - добавление и удаление участка по ID

Согласно the documentation, можно снять участок по ID. Тем не менее, я использую Jquery wrapper, который говорит только об удалении по индексу. В любом случае (с JQuery или без него) я не могу заставить его работать, я не уверен, что это связано с тем, как я добавляю сюжет, как я его удаляю или как я сам настраиваю сюжеты.

Код here.

(Примечание. Я использую обертку JQuery, но для удобства скрипта нет).

var myConfig = { 
    'type':'line', 
'series':[ 

    ] 
}; 
zingchart.render({ 
    id : 'demo-chart', 
    data : myConfig, 
    height: 400, 
    width: '100%' 
}); 


$('#demo1').click(function() { 

zingchart.exec('demo-chart','addplot',{ 
     //plotid : 'http://mine/2', 
     'data' : { 
      plotid : 'http://mine/2', 
      'values':[69,68,54,48,70,74,98,70,72,68,49,69], 
      text : 'To be removed' 
     } 
}); 

zingchart.exec('demo-chart', 'addplot', { 
    data : { 
     values : [10, 20, 15], 
     text : 'To stay' 
    } 
}); 

zingchart.exec('demo-chart','removeplot',{ 
     //plotid : 'http://mine/2', 
     data : { 
      plotid : "http://mine/2" 
     } 
    }); 


}); 

EDIT: Как указано на patrick-rodee, решение заключается в следующем:

  • Использование id (не plotid) внутри data при добавлении участка.
  • Использовать plotid (без data) при удалении участка.

    var myConfig = { 
    'type':'line', 
    'series':[ 
    
         ] 
        }; 
        zingchart.render({ 
        id : 'demo-chart', 
        data : myConfig, 
        height: 400, 
        width: '100%' 
        }); 
    
    
        $('#demo1').click(function() { 
    
        zingchart.exec('demo-chart','addplot',{ 
          'data' : { 
           id : 'http://mine/2', 
           'values':[69,68,54,48,70,74,98,70,72,68,49,69], 
           text : 'To be removed' 
          } 
        }); 
    
        zingchart.exec('demo-chart', 'addplot', { 
        data : { 
         values : [10, 20, 15], 
         text : 'To stay' 
        } 
        }); 
    
        zingchart.exec('demo-chart','removeplot',{ 
          plotid : 'http://mine/2', 
         }); 
    
    
        }); 
    

EDIT 2:

Кстати, это, кажется, поведение по умолчанию может быть немного запутанным: если вы добавляете два участка один будет построена в голубой, другой в красный, затем удалите синий сюжет, затем добавьте его снова -> он будет нанесен красным цветом, так что будут два сюжета с одинаковым цветом.

ответ

6

Ваш removeplot звонок проходит plotindex вместо plotid. Вы также должны переместить plotid внутри вашего вызова addchart вне объекта данных.

Вот рабочий пример, который добавляет участок с идентификатором затем удаляет оба участка по идентификаторам: http://demos.zingchart.com/view/8FG93JTH

Он должен обеспечить достаточно рабочий код, чтобы помочь вам решить вашу проблему.

Я нахожусь в команде ZingChart. Мы здесь довольно активны. Холлер, если у вас есть еще вопросы.

+0

Вы правы, моя ошибка - оставить его после тестирования. Во всяком случае, проблема заключалась в том, что идентификатор должен вводиться внутри «данных» как «id», а не как «plotid», я обновлю его в своем вопросе – user1156544

Смежные вопросы