仅从 knockout.js 开始,但在尝试computed
基于 2 个不同observableArray
的 s制作方法时已经遇到了一些麻烦
使用 knockout.js 网站上的文档,我创建了以下视图模型:
var Cart = function() {
var self = this;
self.Products = ko.observableArray([]);
self.Products2 = ko.observableArray([]);
self.Messages = ko.observableArray([]);
self.TotalAmount = ko.computed(function() {
var result = 0;
ko.utils.arrayForEach(
this.Products().concat(this.Products2()),
function(item) {
result+=item.AmountIncludingVAT();
}
);
return result;
});
};
这样做会引发错误"Uncaught TypeError: Object #<error> has no method 'concat'
。
我知道有这个函数叫做arrayPushAll
,但它是一个破坏性的函数,会改变原来的observableArray
. (我不认为这是我想要的)。
有什么干净的方法可以实现我想要做的事情吗?还是我必须对 2 个不同的调用arrayForEach
,每个数组一个?