4

我处于想要覆盖set敲除对可观察对象的方法的情况;并举例说明我为什么要这样做,请使用以下示例代码:

this.magic = ko.observableArray();

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

这重复了几次,所以我想以可能定制的 observablereduceAndFormat的方法移动函数的整个主体。set

有没有办法做到这一点?因为除了订阅可观察更新之外,在文档中没有看到太多其他内容。

4

1 回答 1

9

你可以创建一个可写的计算 observable

可能是这样的:

// 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 回答