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