2013-03-08 33 views
0

我正在使用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 
}); 

但這並非上述subscription.Is那裏發生的任何其他如何做,或者我做錯了什麼?

編輯

我知道,我們可以通過將單個預定每一個人財產做,但我期待爲廣大認購方式?

回答

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 
    } 
}; 
+0

這個人不是頂級模型這個頂級模型中的對象 – gaurav 2013-03-08 05:29:41

+0

我不知道你想要什麼,但爲什麼你不使用自定義綁定,如果你需要調用一些函數的價值變化? – Sudarshan 2013-03-08 05:38:28