javascript - 创建一个工厂函数来创建 ko.compulated

标签 javascript knockout.js

我对这个概念有点困惑,我想知道你们中是否有人以前这样做过。

我对自己目前的状况感到困惑:

http://jsfiddle.net/6xwSY/12/

您是否认为有一种方法可以将 createRows 函数转换为返回 ko.compulated 的工厂,而不是让我的 self.itemRows 必须将自己声明为计算的。

理想情况下,我的代码如下所示:

    self.itemRows = createRows(self.items(), 4);

让我知道你的想法,谢谢!

最佳答案

当然,您可以让函数返回计算的可观察值。然而,为了使计算函数正确更新,所有可观察的依赖关系都需要在计算函数中“展开”。这将需要您更改函数以接受可观察数组而不是数组。

function createRows(itemsObservable, itemsPerRow) {
    return ko.computed(function () {
        var items = itemsObservable() ....
    });
}

http://jsfiddle.net/mbest/6xwSY/13/

关于javascript - 创建一个工厂函数来创建 ko.compulated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23096594/

相关文章:

javascript - JsApi 有时会损坏

javascript - 按下按钮时切换 cookie 和类

javascript - knockout 将数据从ajax推送到observableArray

javascript - 动态绑定(bind)li项点击事件

javascript - 简单页面未加载 KnockoutJS observables

jquery - Knockoutjs 计算更新后不会重新计算

javascript - 尝试根据 src 随机显示 4 张图像中的一张图像

javascript - 尽管重新定义,仍删除完整对象

php - 表单/PHP/Ajax 加载?

javascript - Knockout 3.2 - AMD 加载组件之间基于 'if' 的转换