knockout.js - 覆盖 observable/observable Array set 方法

标签 knockout.js

我的情况是我想覆盖 set knockout 对 observables 的方法;并举例说明我为什么要这样做,请使用以下示例代码:

this.magic = ko.observableArray();

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

这重复了几次,所以我想移动 reduceAndFormat 的整个主体。 set 中的函数可能自定义的 observable 的方法。

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

最佳答案

您可以创建一个 writable computed 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);
    }
});    

关于knockout.js - 覆盖 observable/observable Array set 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11259639/

相关文章:

javascript - 使用 knockout.js 将 Flash 新元素添加到 dom 中的数组

javascript - 键盘快捷键和 Durandal 对话框

javascript - 使用 ko :if binding knockout 绑定(bind)提供程序预处理器

knockout.js - KnockoutJS 中绑定(bind) Click 事件

javascript - 无法通过 Chosen 和 Knockout Binding 取消选择选项

javascript - 如何延迟绑定(bind) KnockoutJS observable

asp.net-mvc-3 - 使用来自服务器的默认数据初始化 View 模型

javascript - TypeScript、Knockout 和类

javascript - 打印 javascript 数组 : print A then a1 a2 a3 B then b1 b2 b4 C then c1 c2 c3 (knockout)

javascript - 在 1 个列表和 1 个元素之间交换数据信息