假設我有一個觀察的陣列淘汰賽:觀察到的計數值取決於功能
[{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