繁体   English   中英

将值绑定到对象属性,在对象中,在数组中,AngularJS

[英]Bind value to object property, in an object, in an array, AngularJS

好的,这是泡菜:

我使用ng-repeat遍历菜单项:

<!-- 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
    }
}];

预先感谢您的任何见解。

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

但是,假设menuItems.items是一个产品数组,由于某种原因,它的项目不具有属性qty ,并且theCart是另一个产品数组,其中其项目确实具有属性qty 而且您想要的是从theCart数组中theCart要迭代的产品的可用数量,可以使用“ 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>

我必须说这是一种非常丑陋的方式 ,我不建议任何人这样做。 最好在控制器中生成这两个数组的“连接数组”,然后迭代该“连接数组”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM