淘汰全球订阅

时间:2012-09-28 09:03:38

标签: knockout.js

如果网页上的10个可观察对象中的任何一个发生变化,我都会收到通知。我可以通过单独订阅每个(写10次相同的代码)来做到这一点。有没有办法普遍地做,少用代码?

POM

1 个答案:

答案 0 :(得分:0)

这是使用计算值的解决方案:

var Model = function () {
    var self = this;
    self.a1 = ko.observable(1);
    self.a2 = ko.observable(1);
    self.a3 = ko.observable(1);
    self.all = ko.computed(function () {
        self.a1();self.a2();self.a3();
    }, this);
    self.all.subscribe(function () {
         console.log("something changed");  
    });
};
ko.applyBindings(new Model());