我需要在产品列表中汇总价格,并在产品添加到列表时保持更新总和。
我正在使用服务,因为项目将填充其他数组的对象。但是在下面的代码中$scope.total
不返回任何内容:
数组示例: $ scope.items = [ {id:1,nome:“NossoCafé”,preco:5,如:69,quantdade:1,img:'img / mais_1.jpg'} ];
.controller('pedidoCtrl', function($scope, produtoService) {
$scope.items = null;
$scope.items = produtoService.getProdutos();
$scope.deleteItem = function(item) {
$scope.items.splice($scope.items.indexOf(item), 1);
};
$scope.$watchCollection('items', function(array) {
var total = 0;
if (array) {
angular.forEach(array, function(index) {
total += array[index].preco;
});
}
$scope.total = total;
});
})
.service('produtoService', [function() {
var produtosLista = [];
var addProduto = function(produto) {
produtosLista.push(produto);
};
var getProdutos = function() {
return produtosLista;
};
return {
addProduto: addProduto,
getProdutos: getProdutos,
};
}]);
答案 0 :(得分:5)
您不想将产品总数添加到foreach
变量吗?然后将其分配给resultado
?
$scope.total
或者你可以做
$scope.$watchCollection('items', function(array) {
var total = 0;
if (array) {
angular.forEach(array, function(item) {
total += item.preco;
});
}
$scope.total = resultado;
});
答案 1 :(得分:0)
试试这个:
$scope.$watchCollection('items', function(array) {
var total = 0;
if (array) {
angular.forEach(array, function(value) {
total += value.preco;
});
}
$scope.total = total;
});