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

しかし、これは上記のサブスクリプションでは発生していません。他に方法はありますか、それとも私は何か間違ったことをしていますか?

編集

個々のプロパティに個別のサブスクリプションを適用することでこれを実行できることは知っていますが、一般的なサブスクリプション方法を探していますか?

4

2 に答える 2

0

バインディングを適用していないようです。use-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 に答える