2015-08-07 3 views
1

У меня есть меню, которое изменяет тип выбранной серии.Highcharts изменить серийный тип без изменений datalabels

if (clickId == "dashed_line"){ 
     serie.update({ 
      type: "line", 
      dashStyle: 'dash', 
      zIndex: 3 
     }); 
    } 

Это хорошо работает, кроме внешнего вида ярлыка, у меня есть общее состояние (showlabel) для внешнего вида данных.

var bakSerie = new Array(); 
    bakSerie["type"] = serie.type; 
    bakSerie["name"] = serie.name; 
    bakSerie["color"] = serie.color; 
    bakSerie["data"] = serie.options.data; 
    bakSerie["id"] = serie.options.id; 
    bakSerie["dash"] = serie.options.dashStyle; 

    serie.remove(); 
    if (showLabel == 1) 
     var lbl = true; 
    else 
     var lbl = false; 

    console.log("lbl: " + lbl); 

    chart.addSeries({ 
     type: bakSerie["type"], 
     name: bakSerie["name"], 
     color: bakSerie["color"], 
     data: bakSerie["data"], 
     id: bakSerie["id"], 
     dashStyle: bakSerie["dash"], 
     dataLabels: lbl 
    }); 

Когда showlabels равен 1, я изменить тип Серию но datalabel Серию исчезает.

+0

Итак, общая проблема заключается в том, когда вы удаляете и добавляете новую серию, тогда datalabels show/hide, correct? Если да, ufnrotuantely это поведение по умолчанию, потому что datalables печатаются, когда serie - средство визуализации. Вы можете попытаться использовать [series.update()] (http://api.highcharts.com/highcharts#Series.update) вместо remove() addSeries(), как у вас есть. –

ответ

1

Если вы хотите, чтобы включить/отключить dataLabels с lbl булево, вы должны использовать:

dataLabels: { 
    enabled: lbl 
} 

Кстати, вы могли бы заменить

if (showLabel == 1) 
    var lbl = true; 
else 
    var lbl = false; 

с

var lbl = (showLabel == 1); 
Смежные вопросы