0

我正在使用淘汰赛-2.2.0.js。我在淘汰赛中有以下对象:

 function Person(name, age)
 {
   this.Name = ko.observable(name);
   this.Age = ko.observable(age);
 }


 var person = ko.observable(new Person("Tom", 23));

现在我想要的是在人可观察对象上放一个下标,例如:

 person.subscribe(function(newValue){
 //here i want the notification whenever person object name or age change
 });

但是上述订阅并没有发生这种情况。还有其他方法可以做,还是我做错了什么?

编辑

我知道我们可以通过对每个单独的属性应用单独订阅来做到这一点,但我正在寻找一般订阅方法?

4

2 回答 2

0

看起来您还没有应用绑定,使用ko.applyBindings(new Person("Tom", 23));- 如果您希望在更改模型时调用某些函数,那么您应该尝试“自定义绑定”链接在这里

ko.bindingHandlers.yourBindingName = {
    update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        // here you can call your function when some change occur in your observables
    }
};
于 2013-03-08T05:08:07.400 回答
0

这是一个插件:

https://github.com/ZiadJ/knockoutjs-reactor

以下是您想要使用它的方式:

 person.watch(function(root, trigger){
     var newValue = trigger();
 });
于 2013-06-06T08:35:54.790 回答