Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在knockout中订阅模型中的任何更改_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript 如何在knockout中订阅模型中的任何更改

Javascript 如何在knockout中订阅模型中的任何更改,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我正在使用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(newVa

我正在使用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
 });
但上述订阅没有发生这种情况。还有其他方法吗,或者我做错了什么

编辑


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

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


这里有一个插件:

下面是您希望如何使用它:

 person.watch(function(root, trigger){
     var newValue = trigger();
 });

人不是顶级模型这是顶级模型中的对象我不知道你想要什么,但是如果你需要在值更改时调用一些函数,为什么不使用自定义绑定?
 person.watch(function(root, trigger){
     var newValue = trigger();
 });