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');
    });
}