angularJS中的两级层次结构转发器,第一级没有任何输出

时间:2015-05-21 13:49:44

标签: javascript angularjs angularjs-ng-repeat

我想生成一个angular的表,它嵌套在一个两级层次结构中,因此需要两个嵌套的ng-repeat。一个示例数据结构是:

Product.Features

每个产品都有一系列功能,例如:

iPhone
    3G
    ScreenSize
Fruit
    Color
    Size
    Texture

我有一个产品列表,并希望以列的形式输出功能列表。因此,输出将是:

<td>3G</td> 
<td>ScreenSize</td> 
<td>Color</td>  
<td>Size</td>   
<td>Texture</td>    

问题在于,当使用ng-repeat作为产品列表时,我无法生成空白元素。另外,我不能自己使用ng-repeat。一些示例代码可能(不起作用):

<ng-repeat ng-repeat="product in products">
    <td ng-repeat="feature in product.feature">
        {{feature.Name}}
        </td>
</ng-repeat>

请注意,上面的代码是一个示例,而不起作用

这有可能吗?我看到了一些提及使用ng-repeat-start的答案,但我仍然看不出这是怎么回事。

1 个答案:

答案 0 :(得分:0)

您可以使用underscore展平产品列表,然后只需要一次ng-repeat:

在您的控制器中:

$scope.features = _.flatten(_.map(products, function(product) {return product.features}));

$ scope.features将是['3G','ScreenSize','Color'...]

然后在你看来:

<td ng-repeat="feature in features">
    {{feature}}
</td>

SO question about flattening an object here