我正在尝试解决我有一个双向计算observable的问题,并希望将其解析为一个可观察的数组,并将该更改事件冒泡。问题是它似乎没有通知用户。
最好在jsfiddle中显示:http://jsfiddle.net/RHhmY/13/
代码在这里:
function CustomerOverview() {
var self = this;
self.contacts = ko.observableArray([]);
self.v = ko.computed(
{
read : function(){
return "";
},
write : function(val){
self.contacts = ko.observableArray(String(val).split(','));
}
}
);
};
var vm = new CustomerOverview();
ko.applyBindings(vm);
和html:
LENGTH<span data-bind="text: contacts.length"></span><br />
<input type="text" data-bind="value: v">
我尝试了很多事情,包括通知相关observableArray的订阅者,并且长度永远不会更新。
作为一个方面,我非常愿意改变它的构造方式,只需要一些有用的东西。
答案 0 :(得分:4)
这打破了你的绑定:
write : function(val){
self.contacts = ko.observableArray(String(val).split(','));
}
您想要更新您的observable而不是重新分配它
write : function(val){
self.contacts(String(val).split(','));
}