是否可以在Knockout中使用带有参数的计算observable

时间:2012-05-15 11:36:03

标签: mvvm knockout.js

  

可能重复:
  knockoutjs: can we create a dependentObservable function with a parameter?

在我的viewmodel中,我有一个函数,它根据项目类型返回项目总和:

var ViewModel = function(data) {
    var self = this;

    this.Results = ko.observableArray(data);

    this.totalPerType = function(type) {
        var total = 0;
        for (var index in self.Results()) {
            if (self.Results()[index].Type == type)
                total += self.Results()[index].Quantity;
        }

        return total;
    };
};

当用户编辑其中一个项目时,总计不会自动更新,因为它不是计算的可观察项。是否可以将函数 totalPerType 更改为计算的observable,而无需将type参数放入viewmodel(将其保留为参数)?

我创建了一个小提琴,可以更轻松地尝试一些事情:http://jsfiddle.net/7PK9r/

1 个答案:

答案 0 :(得分:2)

我认为这回答了你的问题:

knockoutjs: can we create a dependentObservable function with a parameter?

(注意:dependentObservable是在knockout.js的v2.0之前调用的observables的计算方法。

相关问题