我正在使用knockout-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
});
但上述订阅并没有发生这种情况。还有其他方法吗,或者我做错了什么?
修改
我知道我们可以通过对每个房产申请个人订阅来实现这一目标,但我正在寻找一般的订阅方式?
答案 0 :(得分:0)
看起来您没有应用绑定,请使用 - ko.applyBindings(new Person("Tom", 23));
如果您想要在更改模型时调用某些函数,那么您应该尝试'自定义绑定'Link here
ko.bindingHandlers.yourBindingName = {
update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
// here you can call your function when some change occur in your observables
}
};
答案 1 :(得分:0)
这是一个插件:
https://github.com/ZiadJ/knockoutjs-reactor
以下是您想要使用它的方式:
person.watch(function(root, trigger){
var newValue = trigger();
});