array.push不是函数

时间:2016-10-03 11:46:55

标签: javascript angularjs arrays

我想使用以下代码在Javascript中为数组添加新值:

$rootScope.shoppingCart = new Array();

$rootScope.addToShoppingCart = function(item){
    var quantity = 1;
    var product = [];

    for(var i=0; i< $rootScope.shoppingCart.length; i++){
        if($rootScope.shoppingCart[i].productNumber.indexOf(item.product.productNumber) > -1){
            quantity = $rootScope.shoppingCart[i].quantity+1;
            $rootScope.shoppingCart[i].quantity = quantity;
            break;
        }
    }
    if(quantity == 1){
        product = {
            name: item.product.brandName + " "+ item.product.productNumber,
            price: item.price,
            image: item.product.image1,
            quantity: quantity,
            productNumber: item.product.productNumber,
            productId: item.product._id
        };
        $rootScope.shoppingCart.push(product);
    }
}

但是当我想通过&#39; addToShoppingCart&#39;添加新产品到阵列时函数我收到$rootScope.shoppingCart.push is not a function错误。 我的眼睛我没有任何错误,因为我想将一个数组推入一个数组,但它不断出现这个错误。

有没有人看到我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

您只需将以下代码添加到&#39; loadcart&#39;功能

Array.prototype.push.apply($rootscope.shoppingCart, response.data)