AngularJS ng-repeat范围

时间:2015-09-28 16:28:14

标签: angularjs angularjs-ng-repeat ng-repeat

尝试将ng-repeat用于字符串数组。我有2个场景,1个在哪里工作,另一个在没有的地方。我的问题是为什么它不起作用?

在这种情况下,家庭类型会相应显示: 的工作

<div ng-controller="productsController as product">
    <ul>
        <li ng-repeat="family in product.families | orderBy: 'category'">
            <ul>
                <li ng-repeat="type in family.types">{{type}}</li>
            </ul>
        </li>
    </ul>
</div>

但是,在这种情况下,它们不会显示: 无法工作 为什么?

<div ng-controller="productsController as product">
    <ul>
        <li ng-repeat="family in product.families | orderBy: 'category'">
        </li>
    </ul>
    <ul>
        <li ng-repeat="type in product.families.types">{{type}}</li>
    </ul>
</div>

在这种情况下重复类型的正确方法是什么?

JSON

"families": [
    {
      "category": "Tablets",
      "types": ["type1", "type2", "type3", ...]
    }
]

1 个答案:

答案 0 :(得分:1)

product.families是一个数组。数组没有任何名为types的属性。

适当的方法是在控制器中提取一个数组,该数组将包含所有类型的所有类型作为单个数组,并迭代该单个数组中包含的类型:

var typeArrays = $scope.families.map(function(family) {
    return family.types;
});
$scope.allTypes = [].concat.apply([], typeArrays);