淘汰赛的Observable Arrays可以像其他任何Observable一样“订阅”对数组的更改。“订阅”回调函数接收一个参数,它是数组的新值。这是一个示例(和小提琴):
var oa = ko.observableArray(['some','initial','data']);
oa.subscribe(function(newValue){
console.log("Array was updated! Now it's:");
console.log(newValue);
// But which item was added?
});
oa.push("more data!");
setTimeout(function(){
oa.remove("some");
},1500);
但是,我想知道是什么元素被添加到了可观察数组中。有什么办法吗?如果可以将旧数组与新数组进行比较,则可以确定添加或删除了哪些项目。但是似乎在调用“ subscribe”函数回调时,无法访问“先前的”数组值。在那儿?
淘汰赛observableArray提供event arrayChange
。
oa.subscribe(function(changes){
ko.utils.arrayForEach(changes, function(c) {
console.log(c.status + " value:\"" + c.value + "\" at index:" + c.index);
});
}, null, 'arrayChange');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句