假设我有一个观察的阵列淘汰赛:观察到的计数值取决于功能
[{type:'red' , value:1},
{type:'blue' , value:'2'},
{type:'red' , value:3},
{type:'red' , value:4}]
现在我需要哪种类型返回计数形式阵列可观察到的值==红色 该计上更新每次可观察数组的对象的任何更改。
假设我有一个观察的阵列淘汰赛:观察到的计数值取决于功能
[{type:'red' , value:1},
{type:'blue' , value:'2'},
{type:'red' , value:3},
{type:'red' , value:4}]
现在我需要哪种类型返回计数形式阵列可观察到的值==红色 该计上更新每次可观察数组的对象的任何更改。
您这里需要一个计算obervable,这样的事情就可以了(未经测试):
var yourArray = ko.observableArray([]);
var count = ko.computed(function() {
var items = ko.utils.arrayFilter(yourArray(), function(item) {
return item.type == "red";
});
return items.length;
});
您可以使用ko.computed
做到这一点。
例视图模型:
function ViewModel() {
var self = this;
self.arrayOfObjects= ko.observableArray([{type:'red' , value:1},{type:'blue' , value:'2'},{type:'red' , value:3},{type:'red' , value:4}]);
self.count = ko.computed(function() {
var redItems = ko.utils.arrayFilter(self.arrayOfObjects(), function(arrayItem) {
return arrayItem.type == 'red';
});
return redItems.length;
});
}
任何约束来算将有它的价值变化的红色元素更改次数:
<span data-bind="text: count"></span>
感谢理查德它适用于我.. 。 – xyz 2013-05-01 10:26:21
@kishal Np,随时点击我的答案来打勾,如果它对你有帮助,就接受这个答案。 – 2013-05-01 13:55:19
谢谢你的回复克里斯。 因为我是新来淘汰赛,所以你可以告诉我怎样才能得到这个数据绑定文本计数。 我试图通过在html中替换var count this.count =函数 和但它返回函数本身。 – xyz 2013-05-01 09:23:25
我会编辑我的帖子:) – 2013-05-01 09:32:33
其实,尝试... text:count()来代替。 – 2013-05-01 09:33:11