2

私は、双方向の計算されたオブザーバブルがあり、それをオブザーバブル配列に解析して、その変更イベントをバブルアップさせたいという問題を解決しようとしています。問題は、サブスクライバーに通知していないように見えることです。

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(','));
}

オブザーバブルを再割り当てする代わりに更新したい

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