订阅观察特性内observableArray在Knockout.js
问题描述:
我有对象的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;});
任何想法如何划写到数组中的键? 谢谢...
答
你试过吗?
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');
});
});
};
感谢您的回应! tMsg是一个局部变量,并没有被添加到KO作为可观察的。我尝试了所有这些变体:systemMessagesArray()。subscribe(function(v){alert('changed');});和:systemMessagesArray()。READ.subscribe(function(v){alert('changed');});我也试过把数组作为一个方法(没有括号),没有任何东西。 – user2250351 2013-05-01 18:56:52
你能演一个小提琴来说明问题吗? – Damien 2013-05-01 19:11:00
我不知道这是多么的内存密集。如果有方法说“sysMsgs.subscribe(”tMsg“,function(){console.log(”changed“);})” – netpoetica 2014-08-29 14:42:05