angular.js ng-repeat with arrays

时间:2014-08-03 15:55:28

标签: javascript angularjs ng-repeat

我有一个带有angular.js的简单购物车应用程序,效果很好。

客户将产品添加到购物车,获得这样的对象(只是粘贴一点):

shoppingCart {
    cartName: "Store",
    items: Array[2]
        0: Object
        name: "product1"
        price: 3.5
        quantity: 1
        sku: "1906"

        1: Object
        name: "product2"
        price: 5
        quantity: 1
        sku: "1907"
        }

现在,人们可以发出不同的订单,并且他们在继续结账和付款之前会在酒吧收到产品。

我有一个带有ng-repeat指令的摘要页面,用于显示所有产品(以及+ - 用于进行最后修正的按钮)。一旦检查了购物车,客户就会点击订单按钮。 订购后,cutomers可以继续购物,在我想要显示的相同摘要页面中,所有订单已经完成(没有+ - 按钮,因为产品已经交付)。

我尝试将shoppingCart对象的内容移动到另一个对象中,但我正在使用array.push,并且无法弄清楚如何使用数组进行重复。

$scope.alreadyDeliveredProducts = {
    'itemsAlready' : []
    };

$scope.pushmyorders = function (){
    $scope.alreadyDeliveredProducts.itemsAlready.push($scope.cart.items);
    // and then clear Store
    }

现在我的已经发现的产品是这样的:

Object {
    itemsAlready: Array[2]
        0: Array[2] //contains all items of first order
        1: Array[3] //contains all items of second order
    }

应该听起来不错但现在我不知道如何迭代这个系列。

试过这样的事情,这是不正确的,但我现在做得不好:

<ion-item ng-repeat="ordereditem in alreadyDeliveredProducts.itemsAlready track by $index">
<p> {{ordereditem.name}} </p> 

很抱歉这个长期的问题,但也许(确定)我的所有存储数据的策略都可以改进。

由于

1 个答案:

答案 0 :(得分:0)

此处出现问题:$scope.alreadyDeliveredProducts.itemsAlready.push($scope.cart.items); 请尝试更改为:[].push.apply($scope.alreadyDeliveredProducts.itemsAlready, $scope.cart.items);