我正在尝试计算嵌套子列表的值的总和,我要查询的 VM 正在使用 KO 映射器进行映射,然后使用我的计算字段进行扩展。它似乎找不到我正在寻找的嵌套数组:
var HouseholdViewModel = function(data) {
this.$type = 'HouseholdViewModel';
ko.mapping.fromJS(data, mapping, this);
this.T12 = ko.computed(function () {
var total = 0;
ko.utils.arrayForEach(this.Accounts(), function (account) {
total += account.T12Revenue();
});
return total;
}, this);
};
var AccountViewModel = function(data) {
this.$type = 'AccountViewModel';
ko.mapping.fromJS(data, mapping, this);
};
var mapping = {
'Households': {
create: function(options) {
return new HouseholdViewModel(options.data);
}
},
'Accounts': {
create: function(options) {
return new AccountViewModel(options.data);
}
}
};
我收到错误消息“Uncaught TypeError: Object [object Object] has no method 'Accounts'”。我假设这是由于 KO.Mapper 尚未绑定 Accounts 但映射调用高于计算的 observable。任何帮助将不胜感激。