关于 mvvm:是否可以在 Knockout 中使用参数计算 observable

Is it possible to have a computed observable with parameters in Knockout

本问题已经有最佳答案,请猛点这里访问。

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

在我的视图模型中,我有一个函数可以根据项目的类型返回项目的总和:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;
    };
};

当用户编辑其中一项时,总数不会自动更新,因为它不是计算出的 observable。是否可以将函数 totalPerType 更改为计算的 observable,而不必将类型参数放入视图模型(将其保留为参数)?

我创建了一个 Fiddle 以便更轻松地尝试一些事情:http://jsfiddle.net/7PK9r/


我想这回答了你的问题:

knockoutjs:我们可以创建一个带参数的dependentObservable 函数吗?

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