1

我有一个包含很多逻辑的数据绑定。目前我必须将它粘贴到几个地方才能得到我想要的。我希望能够使其成为仅在一个地方最好作为 KO 对象的方法的函数。我需要移动的数据绑定是创建斜体计数文本的数据绑定。

data-bind="text: ($data.children)?($data.children.filter(function(e){return e.enabled()}).length + ' Children On'):('No Children')"

http://jsfiddle.net/5UeND/6/

4

1 回答 1

0

您可以在主视图模型上创建一个函数,该函数返回 ako.computed并进行计算:

self.childrenCounter = function(data) {
        return ko.computed(function() {
            return (this.children) ? (this.children.filter(function(e) {
                return e.enabled()
            }).length + ' Children On') : ('No Children')
        }, data);
    }

然后你可以在你的模板里面这样使用:

<i data-bind="text: $root.childrenCounter($data)"></i>

演示 JSFiddle。

于 2012-11-13T20:06:16.357 回答