1

如何将多个 HTML 输入字段绑定到同一个可观察对象,使可观察对象成为输入字段的总和?(输入字段将只接受数字)

我知道我可以为每个输入字段使用 ko.observable 并使用 ko.computed 来计算输入字段的总和,但是当我将有任意数量的输入字段时,这是如何完成的呢?

-谢谢 :)

4

1 回答 1

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;
    });
};

你可以在这个JSFiddle中玩这个。

于 2013-07-04T20:19:43.077 回答