2013-05-01 128 views
3

我有对象的observableArray在我的视图模型,并在,我有一个关键的观察特性:订阅观察特性内observableArray在Knockout.js

var somefunc = function(sysMsgs) 
{ 
    // Create a VO from passed array 
    $.each(sysMsgs, function(i, v) { 
    var tMsg = { 
     ... 
     READ : ko.observable(v.READ), 
     ... 
    }; 
    systemMessagesArray.push(tMsg); // Already Initialized observableArray 
    }); 
} 

我需要订阅的变化上READ键,这样我可以禁用视图中的表单控件。在一个常规观察,我会:

variable.subscribe(function(v) {do something with the value v;}); 

任何想法如何划写到数组中的键? 谢谢...

回答

0

你试过吗?

var somefunc = function (sysMsgs) { 
    // Create a VO from passed array 
    $.each(sysMsgs, function (i, v) { 
     var tMsg = { 
      READ: ko.observable(v.READ), 
     }; 
     systemMessagesArray.push(tMsg); 
     tMsg.subscribe(function { 
      alert('changed'); 
     }); 
    }); 
}; 
+0

感谢您的回应! tMsg是一个局部变量,并没有被添加到KO作为可观察的。我尝试了所有这些变体:systemMessagesArray()。subscribe(function(v){alert('changed');});和:systemMessagesArray()。READ.subscribe(function(v){alert('changed');});我也试过把数组作为一个方法(没有括号),没有任何东西。 – user2250351 2013-05-01 18:56:52

+0

你能演一个小提琴来说明问题吗? – Damien 2013-05-01 19:11:00

+0

我不知道这是多么的内存密集。如果有方法说“sysMsgs.subscribe(”tMsg“,function(){console.log(”changed“);})” – netpoetica 2014-08-29 14:42:05