Mvvm 是否有可能在敲除中使用参数计算出可观测值

Mvvm 是否有可能在敲除中使用参数计算出可观测值,mvvm,knockout.js,Mvvm,Knockout.js,可能重复: 在我的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())

可能重复:

在我的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更改为计算可观测值,而不必将类型参数放入viewmodel(将其保留为参数)


我制作了一把小提琴,以便于尝试一些东西:

我想这回答了你的问题:


(注意:
dependentObservable
是在knockout.js的v2.0版本之前被调用的计算可观测值)

我不得不稍微修改一下示例,以使其生效,但谢谢!您可以在此处找到工作示例: