Angularjs Ng重复内部Ng重复

Angularjs Ng重复内部Ng重复,angularjs,ng-repeat,Angularjs,Ng Repeat,我将更改我的数据表示形式,以匹配您实际试图显示的内容,如下所示: 这样,您就可以轻松地匹配两个嵌套循环,如下所示: {{cate.name} {{menuItem.name}-{{menuItem.price} 如果您想看到它的实际应用,请查看。 如果您需要坚持使用JSON数据,则必须进行过滤以提取要显示的内容。@show me代码:Bill Bi有两个不同的数组。所以实现这一点的最佳选择是在内部循环中进行过滤,正如我在评论中所说的 下面是最后一个带过滤器的代码,用于内部循环。我包括

我将更改我的数据表示形式,以匹配您实际试图显示的内容,如下所示:

这样,您就可以轻松地匹配两个嵌套循环,如下所示:


  • {{cate.name}
  • {{menuItem.name}-{{menuItem.price}
如果您想看到它的实际应用,请查看。
如果您需要坚持使用JSON数据,则必须进行过滤以提取要显示的内容。

@show me代码:Bill Bi有两个不同的数组。所以实现这一点的最佳选择是在内部循环中进行过滤,正如我在评论中所说的

下面是最后一个带过滤器的代码,用于内部循环。我包括小提琴手,以供快速参考

<div ng-app ng-controller="testCtrl">
    <ul ng-repeat="cate in restaurant.categories">
        <li>{{cate.name}}</li>
        <li ng-repeat="menuItem in cate.menuItems">{{menuItem.name}} - {{menuItem.price}}</li>
    </ul>
</div>

  • {{cate}}
  • {{menuItem.name}
函数testCtrl($scope){ $scope.menuItems=[{name:'dish1',category:'soup'}, {名称:'dish2',类别:'beef'}]; $scope.categories=[“牛肉”、“汤”] }

Fiddle:

您需要显示
类别
菜单项
数据的示例和/或理想情况下,一个Plunker示例您需要在内部ng repeat中使用filter来过滤第二个数组。只需在此处共享您的整个数组,我将帮助您实现这一点。我会严格进行过滤器比较,以避免在
menuItem.category
包含
cate
的地方进行匹配,例如
|filter:{category:cate}:true
@Bill Bi:如果这有助于理解其他堆栈成员,请将此答案标记为已回答。这是一个不错的选择,但不允许我更改数据库
menuItems = {{name: dish1, category:soup},
             {name: dish2, category:beef}}
categories = {beef, soup}                 
$scope.restaurant = {
    categories: [{
        name: "beef",
        menuItems: [{
            name: "dish1",
            "price": "$10"
        }, {
            name: "dish2",
            "price": "$15"
        }]
    }, {
        name: "soup",
        menuItems: [{
            name: "dish1",
            "price": "$20"
        }, {
            name: "dish2",
            "price": "$25"
        }]
    }]
};
<div ng-app ng-controller="testCtrl">
    <ul ng-repeat="cate in restaurant.categories">
        <li>{{cate.name}}</li>
        <li ng-repeat="menuItem in cate.menuItems">{{menuItem.name}} - {{menuItem.price}}</li>
    </ul>
</div>
<div ng-app ng-controller="testCtrl">
    <ul ng-repeat="cate in categories">
        <li>{{cate}}</li>
        <li ng-repeat="menuItem in menuItems | filter:{category: cate}">{{menuItem.name}}</li>
    </ul>
</div>

function testCtrl($scope) {
    $scope.menuItems = [{name: 'dish1', category:'soup'},
             {name: 'dish2', category:'beef'}];
    $scope.categories = ['beef', 'soup']
}