제품 목록의 가격을 합산하고 제품이 목록에 추가 될 때 합계를 업데이트해야합니다.
항목이 다른 배열의 개체로 채워지기 때문에 서비스를 사용하고 있습니다. 그러나 아래 코드에서는 $scope.total
아무것도 반환하지 않습니다.
배열 예 : $ scope.items = [{id : 1, name : "Nosso Café", price : 5, like : 69, quantity : 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,
};
}]);
제품 합계를 resultado
변수 에 추가하려는 뜻이 아닙니까? 그리고 그것을 $scope.total
?
$scope.$watchCollection('items', function(array) {
var total = 0;
if (array) {
angular.forEach(array, function(item) {
total += item.preco;
});
}
$scope.total = resultado;
});
또는 할 수 있습니다
$scope.$watchCollection('items', function(array) {
if (array) {
$scope.total = array.reduce(function(total,item) {
return total + item.preco;
},0);
}
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다