0
我想弄清楚如何觀看數組並更新對象,就像這樣。AngularJS - 觀看數組和更新對象
var vm = this; //controller
vm.order = {
totalValue: 25,
products: [{id:0, val: 10, qtd: 1}, {id:1, val: 15, qtd: 1}]
};
如果我將新產品推入此訂單對象,如何更新totalValue只是看集合? (totalValue = All Val * All Qtd)
這是必要的,因爲「qtd」字段綁定到輸入字段,所以我可以隨時更改所有「產品」的值。
UPDATE
$scope.$watchCollection(
function() { return self.order.products; },
function(products) {
self.order.totalValue = products.reduce(function (p, n) {
console.log(n.qtd);
console.log(n.val);
return p + n.qtd * n.val;
}, 0);
});
的代碼工作,但只有當我推一個新的 「產品」 到訂單。 我必須注意每一個order.products.product.qtd每一次改變order.totalValue用戶更改產品
如果我有「$ scope.orders」而不是「var vm = this; vm.orders」,該怎麼辦? 我已經更新了這個問題 –
然後,你必須相應地調整你的功能,如[這裏描述](http://stackoverflow.com/questions/30874412/angular-controller-as-syntax-no-method-watchcollection )。 – raina77ow
@Lucas Freitas更新了答案 – karaxuna