AngularJS创建虚拟指令

AngularJS creating dummy directive

本文关键字:指令 虚拟 创建 AngularJS      更新时间:2023-09-26

我想在AngularJS中创建一个"dummy"元素来嵌套ng-repeat。
所以后面的

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节点。

这可能吗?

指令ng-repeat-startng-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>

,而不需要一个虚拟元素/指令,可以在这个Plunker中看到。

在Google上搜索后,我找到了一篇回答这个问题的博客文章。它展示了如何使用ng-repeat-start和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>