无法从Angular的购物车中删除商品

时间:2018-07-20 07:36:22

标签: javascript angularjs

我需要通过按清除按钮来删除所有添加到购物车中的物品。 我开始写一个函数,但是它拒绝工作。 我认为错误是我没有将物品推入购物车。 我该怎么做这两件事?无论如何,如果您发现任何错误,请提及。

angular.module('TransactionApp', [])
    .controller('TransactionsCtrl', function($scope) {
        $scope.title = 'Add to cart';

        $scope.itemsArray = [{
                price: 50,
                name: "Whey protein",
                img: 'img/item-1.png',
                quantity: 0
            },
            {
                price: 60,
                name: "Protein bar",
                img: 'img/item-1.png',
                quantity: 0
            },
            {
                price: 35,
                name: "BCAA",
                img: 'img/item-1.png',
                quantity: 0
            },
            {
                price: 50,
                name: "Whey protein",
                img: 'img/item-1.png',
                quantity: 0
            },
            {
                price: 60,
                name: "Protein bar",
                img: 'img/item-1.png',
                quantity: 0
            },
            {
                price: 80,
                name: "BCAA",
                img: 'img/item-1.png',
                quantity: 0
            }

        ];

        $scope.addTo = function(item) {
            item.quantity += 1;
        }

        $scope.getCost = function(item) {
            return item.quantity * item.price;

        }

        $scope.cart = [];

        $scope.getTotal = function() {
            return $scope.itemsArray.reduce((a, b) => a + b.price * b.quantity, 0);
        }

        $scope.clearCart = function() {
            return $scope.cart.length = 0;
        };
    });

3 个答案:

答案 0 :(得分:1)

Juse重置数组中的项目,

   $scope.cart = [];

您不需要返回任何内容,您可以通过使用length来获得计数。

答案 1 :(得分:1)

应该是

$scope.clearCart = function() {
  $scope.cart = [];
};

答案 2 :(得分:0)

使用以下方法使其为空:

$scope.cart = [];

或一一减少:

$scope.cart.slice(start, end);//start is an index from where you want to delete and the end is number which represents how many to delete.

要在数组的最后一个索引处插入某些内容,您确实需要按下:

$scope.cart.push(item);