【问题标题】:Knockout Modifying ObservableArray inside Computed敲除修改 Computed 内的 ObservableArray
【发布时间】:2014-09-02 19:48:05
【问题描述】:

我正在尝试解决我有一个两路计算的 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 并且长度永远不会更新。

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

【问题讨论】:

    标签: javascript knockout.js binding ko.observablearray computed-observable


    【解决方案1】:

    这会破坏你的绑定:

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

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

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

    【讨论】:

    • 这是我遗漏的一个重要点,真的让我在淘汰赛中度过难关,非常感谢!
    猜你喜欢
    • 2012-06-26
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多