考虑this fiddle。
我想动态地将ko.computed
添加到ko.observableArray
:
self.items.push(ko.computed({
read: function () {
return items[i];
},
write: function (value) {
//some write action
alert(value);
}
}));
我需要将write
函数从ko.computed
管理到数组中。
使用此代码,read非常有用,但 knockout 不会调用write
函数,因此不会调用alert
。
我错过了什么吗?有解决方法吗?
答案 0 :(得分:0)
我决定创建另一个 ViewModel :
function item(value) {
var self = this;
self.value = ko.observable(value);
self.computed = ko.computed({
read: self.value,
write: function (value) {
alert(value);
self.value(value);
}
});
}
function header(items) {
var self = this;
self.items = ko.observableArray();
for (var i = 0; i < items.length; i++) {
self.items.push(new item(items[i]));
}
}
HTML:
<ul data-bind="foreach: items">
<li>
<input type="text" data-bind="value: computed" />
</li>
</ul>
the fiddle正在工作。