如何将多个HTML输入字段绑定到同一个observable,使得observable是输入字段的总和? (输入字段仅包含数字)
我知道我可以为每个输入字段使用ko.observable并使用ko.computed来计算输入字段的总和,但是当我要有任意数量的输入字段时如何完成?
- 谢谢:)
答案 0 :(得分:1)
如果您将拥有任意数量的输入字段,那么您可能会有某种“项目集合”。
让我们调用ItemViewModel
项目value
,以及存储items
ko.observableArray()
的集合ko.computed
现在您只需要遍历value
中的集合并总结集合中项目的var ViewModel = function(){
var self = this;
self.items = ko.observableArray([]);
self.sum = ko.computed(function (){
var total = 0;
ko.utils.arrayForEach(self.items(), function(item){
var value = parseInt(item.value());
if (!isNaN(value))
total += value;
});
return total;
});
};
属性,因此您需要这样的内容:
{{1}}
您可以在此JSFiddle.
中使用此功能