ノックアウト.jsから始めたばかりですが、2つの異なるscomputed
に基づいてメソッドを作成しようとすると、すでにいくつかの問題が発生していますobservableArray
knockout.js の Web サイトのドキュメントを使用して、次のビューモデルを作成しました。
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
です。(これは私が望むものではないと思います)。
私がやろうとしていることを達成するためのきれいな方法はありますか? arrayForEach
または、配列ごとに 1 つずつ、2 つの異なる呼び出しを行う必要がありますか?