我有一个包含很多逻辑的数据绑定。目前我必须将它粘贴到几个地方才能得到我想要的。我希望能够使其成为仅在一个地方最好作为 KO 对象的方法的函数。我需要移动的数据绑定是创建斜体计数文本的数据绑定。
data-bind="text: ($data.children)?($data.children.filter(function(e){return e.enabled()}).length + ' Children On'):('No Children')"
我有一个包含很多逻辑的数据绑定。目前我必须将它粘贴到几个地方才能得到我想要的。我希望能够使其成为仅在一个地方最好作为 KO 对象的方法的函数。我需要移动的数据绑定是创建斜体计数文本的数据绑定。
data-bind="text: ($data.children)?($data.children.filter(function(e){return e.enabled()}).length + ' Children On'):('No Children')"
您可以在主视图模型上创建一个函数,该函数返回 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>