2013-05-01 147 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