2

我正在尝试解决我有两种方式计算的 observable 并希望将其解析为 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 并且长度永远不会更新。

另一方面,我非常愿意改变淘汰赛的构建方式,只想要一些有效的东西。

4

1 回答 1

4

这会破坏您的绑定:

write : function(val){
           self.contacts = ko.observableArray(String(val).split(','));
}

你想更新你的 observable 而不是重新分配它

write : function(val){
           self.contacts(String(val).split(','));
}
于 2014-07-12T06:49:45.103 回答