我有 JSON 对象中的包裹订购数据。我可以执行如下所示的嵌套循环,列出所有订单,然后列出每个订单中的包裹,然后列出每个包裹中的 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>
但是,我只想要特定订单的详细信息,而不是所有订单。现在,如果这是我想要的第一个订单。我可以用这个:
<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>
注意“limitTo:1”过滤器。但是,如果我想要不同的索引,或者更好的是匹配的订单号(“ordernum”)怎么办?
最佳答案
您可以使用 filter
过滤器(此处假设 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>
关于javascript - Angular JS 只嵌套一个顶级对象的 ng-repeat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28115536/