我寫的敲除爲highcharts結合,因此,我通過添加和/或移除系列具有highcharts series
對象我要綁定到圖表的可觀察到的陣列必要時使用highcharts api。比較圖表系列陣列新陣列,以確定增加/刪除
這裏是我的bindingHandler
的輪廓(對於非淘汰賽,這是將我的ViewModel綁定到綁定到它的UI元素的位)。
ko.bindingHandlers.series = {
update: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
if(element.highChart === undefined){
console.warn('Element ' + element.id + ' not attached to a highchart binding');
return;
}
var value = valueAccessor();
var valueUnwrapped = ko.unwrap(value);
var chart = element.highChart;
var series = chart.series;
if($.isArray(valueUnwrapped)){
// In here is my question
}
}
}
哪裏的評論是形式上的形式是我qustion的癥結。在這一點上我有兩個JavaScript變量
series
- 的highcharts系列對象數組目前顯示valueUnwrapped
- highcharts一系列對象的數組,它現在應該顯示
什麼是比較這兩個陣列以確定的有效方式
-
0應使用被去除的
- 哪些實例的
remove
method - 其中
valueUnwrapped
陣列應該使用addSeries
method
series
陣列上個
在箱子它的幫助下被添加上的情況下,還有一個有用尋找get
method其通過編號獲得一系列,我很高興在我的所有系列中都有一個編號。這是在chart
對象,你會在我上面的示例代碼中看到。
我當然可以得到真正懶惰和清除圖表
while(series.length > 0)
series[0].remove(false);
然後從我的數組再次添加它們。我想知道是否有更好的方法。
並不淘汰賽觀察變化對你來說,所以你不必手動調和? – dandavis
那是什麼我嘗試添加;)淘汰賽將綁定文本到文本框,和項目下拉本身,但是當你要像highcharts整合,你寫一個[bindingHandler(HTTP:// knockoutjs。com/documentation/custom-bindings.html) – Jamiec
是由數字,數組或對象組成的系列數據數組? – dandavis