简体   繁体   English

Angular JS仅嵌套一个顶级对象的ng-repeat?

[英]Angular JS nested ng-repeat of only one top-level object?

I have package ordering data in a JSON object. 我在JSON对象中有包装订购数据。 I can do a nested loop like below and list all the orders, then the parcels in each order, then the SKUs in each parcel. 我可以像下面这样进行嵌套循环,并列出所有订单,然后列出每个订单中的包裹,然后列出每个包裹中的SKU。

<div ng-repeat="order in orders">
order {{order.ordernum}}
    <div ng-repeat="parcel in order.parcels">
    {{parcel.upid}}
      <div ng-repeat="sku in parcel.skus">
      {{sku.sku}}{{sku.commodity}}
      </div>
    </div>
</div>

However, I only want a specific order's details, not all the orders. 但是,我只想要特定订单的详细信息,而不是所有订单。 Now, if it's the first order I want. 现在,如果这是我想要的第一笔订单。 I can use this: 我可以用这个:

<div ng-repeat="order in orders | limitTo: 1">
order {{order.ordernum}}
    <div ng-repeat="parcel in order.parcels">
    {{parcel.upid}}
      <div ng-repeat="sku in parcel.skus">
      {{sku.sku}}{{sku.commodity}}
      </div>
    </div>
</div>

Notice the "limitTo:1" filter. 注意“ limitTo:1”过滤器。 But what if I want a different index, or even better, a matching order number ("ordernum")? 但是,如果我想要一个不同的索引甚至更好的匹配订单号(“ ordernum”)怎么办?

You can use the filter filter for this (assume here that theOrder is a scope variable with the order number that you want): 您可以为此使用filterfilter器(此处假设theOrder是具有所需订单号的范围变量):

<div ng-repeat="order in orders | filter:{ordernum: theOrder}">

 function OrderController($scope) { $scope.orders = [{ ordernum: 3, parcels: [{ upid: 9 }, { upid: 15 }] }, { ordernum: 7, parcels: [{ upid: 1 }] }]; $scope.theOrder = 3; } 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/angular.min.js"></script> <div ng-app="" ng-controller="OrderController"> <select ng-model="theOrder"> <option value="{{order.ordernum}}" ng-repeat="order in orders">{{order.ordernum}}</option> </select> <div ng-repeat="order in orders | filter:{ordernum: theOrder}"> order {{order.ordernum}} <div ng-repeat="parcel in order.parcels"> {{parcel.upid}} <div ng-repeat="sku in parcel.skus"> {{sku.sku}}{{sku.commodity}} </div> </div> </div> </div> 

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

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