Javascript 淘汰赛,如何订阅observableArray中的每一项更改
你能帮我订阅吗。找不到有关的信息Javascript 淘汰赛,如何订阅observableArray中的每一项更改,javascript,knockout.js,Javascript,Knockout.js,你能帮我订阅吗。找不到有关的信息 您可以对阵列使用“订阅”: self.SentinelList.subscribe(function (changes) { changes.forEach(function (change) { if (change.status === 'added') { console.log('new item !!'); change.value.s
您可以对阵列使用“订阅”:
self.SentinelList.subscribe(function (changes) {
changes.forEach(function (change) {
if (change.status === 'added') {
console.log('new item !!');
change.value.subcriptions.push(change.value.subscribe(event));
} else if (change.status === 'deleted') {
ko.utils.arrayForEach(change.value.subcriptions, function(s) {
if(s) s.dispose();
}
);
console.log('deleted item !!');
}
});
}, null, "arrayChange");
您可以使用跟踪视图模型更改的外部插件。例如KO反应堆 在这种情况下,订阅将如下所示
for(var i = 0; i < vm.SentinelList().length; i++){
ko.watch(vm.SentinelList()[i], { recurse: true }, function(params, modifiedProperty) {
console.log('SentinelList changed');
});
}
for(var i=0;i
jsfiddle.net站点中通常存在js错误。您可以尝试在Firefox中运行这个示例,在那里它可以正常工作
for(var i = 0; i < vm.SentinelList().length; i++){
ko.watch(vm.SentinelList()[i], { recurse: true }, function(params, modifiedProperty) {
console.log('SentinelList changed');
});
}