4

私は、setノックアウトがオブザーバブルに対して持っているメソッドを上書きしたい状況にあります。そして、私がそれを望む理由の例を与えるために、次のサンプルコードを取ります:

this.magic = ko.observableArray();

// ... inside an Ajax request
var formatted = reduceAndFormat(respone);
this.magic(formatted);

これは数回繰り返されるので、代わりに、おそらくカスタマイズされたオブザーバブルreduceAndFormatの方法で関数の本体全体を移動したいと思います。set

これを行う方法はありますか?観察可能な更新をサブスクライブする以外は、ドキュメントに他の多くは表示されなかったためです。

4

1 に答える 1

9

書き込み可能な計算されたオブザーバブルを作成できます

おそらくこのようなもの:

// private variable
this._magic = ko.observableArray();

// property with getter and setter
this.magic= ko.computed({
    read: function(){
        return _magic();
    },
    write: function(value) {
        var formatted = reduceAndFormat(value);
        this._magic(formatted);
    }
});    
于 2012-06-29T10:30:27.130 に答える