我有一个带有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>
很抱歉这个长期的问题,但也许(确定)我的所有存储数据的策略都可以改进。
由于
答案 0 :(得分:0)
此处出现问题:$scope.alreadyDeliveredProducts.itemsAlready.push($scope.cart.items);
请尝试更改为:[].push.apply($scope.alreadyDeliveredProducts.itemsAlready, $scope.cart.items);