1

好的,继承人的泡菜:绑定值到对象属性,在一个对象中,在阵列中,AngularJS

im使用纳克 - 重复通过菜单项进行迭代:

<!-- start the list/loop --> 
<ion-list ng-repeat="this in menuItems.items track by $index" type="item-text-wrap"> 

    <a class="item" ng-click="addToCart({{this}})">{{this.name}} 
     <span class="badge badge-stable">{{theCart[$index].product.qty}}</span> 
    </a> 

</ion-list> 
<!-- end the list/loop --> 

问题出现当我尝试从购物车'theCart [$ index] .product.qty'中的商品中获取价值时,因为$ index没有绑定到任何特定商品,只是数组中的位置。我需要在数组中深入到一个唯一标识符2个对象,所以我可以确保使用Angular的双向数据绑定来提供正确的值。

theCart: [{ 
    product: { 
     id: 1, 
     section: 'sides', 
     name: 'mayo', 
     price: 7, 
     outOfStock: '', 
     qty: 1 
    } 
}, { 
    product: { 
     id: 0, 
     section: 'sides', 
     name: 'ranch', 
     price: 6, 
     outOfStock: '', 
     qty: 1 
    } 
}]; 

在此先感谢您的任何见解。

+0

究竟是什么问题? “this.id”不起作用? – pixelbits 2014-09-05 04:13:35

回答

0

我不确定我是否正确理解了您的问题。

但假设menuItems.items是由于某种原因,其项目不具备的特性qty产品阵列和theCart是一个不同的阵列,其中的项目做有物业qty产品。而且,你想要的是让你从阵列theCart迭代产品的可用数量,你可以使用filter 'filter',这样做:

<ion-list ng-repeat="item in menuItems.items" type="item-text-wrap"> 
    <a class="item" ng-click="addToCart(item.id)">{{item.name}} 
     <span class="badge badge-stable"> 
      {{(theCart | filter:{product:{id:item.id} })[0].product.qty}} 
     </span> 
    </a> 
</ion-list> 

我必须说,这是一个非常丑陋的方式做到这一点,我不会推荐这样做给任何人。 在控制器中生成这两个数组的“连接数组”会更好,并且反复使用“连接数组”来代替

+0

谢谢。我同意这看起来很丑陋。我想我只是将数组结构重构为'cart:0'和'cart:1'布尔属性的'menu []'数组。这看起来好像是以角度的方式,因为它将以最蒸馏的形式利用双向数据绑定。获取结果的最小代码。同意? – user3865639 2014-09-05 16:03:24

相关问题