AngularJS创建虚拟指令

时间:2014-07-29 07:31:27

标签: javascript html angularjs angularjs-directive angularjs-ng-repeat

我想在AngularJS中创建一个"虚拟"用于制作嵌套ng-repeats的元素 以下是

data.test = [{h:1, d:[11,12]}, {h:2, d:[21,22]}];
----------------------
<dummy ng-repeat="a in data.test">
    <h3>{{a.h}}</h3>
    <p ng-repeat="b in a.d">{{b}}</p>
</dummy>

将扩展为

<h3>1</h3>
<p>11</p>
<p>12</p>
<h3>2</h3>
<p>21</p>
<p>22</p>

请注意,我不想成为div中的每个群组或任何其他元素。

我尝试过以下指令

app.directive('dummy', function () {
    return {
        restrict: 'E',
        replace: true,
        template: ''
    };
});

但是,它似乎保留了dummy个节点。

这可能吗?

2 个答案:

答案 0 :(得分:4)

指令ng-repeat-start and ng-repeat-end可用于此目的。

<h3 ng-repeat-start="a in data.test">{{a.h}}</h3>
<p ng-repeat-end ng-repeat="b in a.d">{{b}}</p>

不需要虚拟元素/指令,可以看作in this Plunker

答案 1 :(得分:0)

搜索谷歌后,我发现了一篇回复此帖子的博文。它显示了如何group with ng-repeat-start and ng-repeat-end。有一个可下载代码的运行示例。如果跳到最后,您可以看到如下所示的代码:

<body ng-controller="TeamListCtrl">
    <div ng-repeat-start="team in teams" class="header">{{team.name}}</div>
    <div ng-repeat="player in team.players" class="item">{{player.firstName}} {{player.lastName}}</div>
    <div ng-repeat-end><br /></div>
</body>