【发布时间】:2015-04-13 21:24:10
【问题描述】:
我有 3 个不同的指令,<one>、<two>、<three>。
我想遍历它们的 id 并将它们插入到 ng-repeat 中
<ul>
<li ng-repeat="panel in panels">
<panel>
<!-- panel.id would give me "one", "two" etc. -->
<!-- First insert <one> then <two> etc -->
</panel>
</li>
</ul>
我想要实现的结果 html 将是:
<ul>
<li>
<panel>
<one></one>
</panel>
</li>
<li>
<panel>
<two></two>
</panel>
</li>
<li>
<panel>
<three></three>
</panel>
</li>
</ul>
因为每个都有它的模板:
<ul>
<li>
<div class="panel">
<div id="one">
</div>
</div>
</li>
<li>
<div class="panel">
<div id="two">
</div>
</div>
</li>
<li>
<div class="panel">
<div id="three">
</div>
</div>
</li>
</ul>
我不知道该怎么做?这可能吗?我必须ng-compile 才能在指令中包含指令吗?
我应该只使用一个指令并使用ng-switch吗?
我错过了更直接的方法吗?
我知道这行得通:
创建一个<panel-content> 指令。
我将它包含在 <panel> 指令中:
制作一个
<ng-switch="panel.id">
<ng-switch-when="one">
<ng-switch-when="twp">
<ng-switch-when="three">
</ng-switch>`
但是看起来很麻烦。
【问题讨论】:
-
这些指令有何不同 - 完全不同?
-
你能告诉我你的
panels详情 -
@JonEgerton 是的,为了这个问题,是的,完全。
-
@RameshRajendran 我无法向您展示实际代码。但它没有什么特别的,一个正常的指令。如果对可能影响您回答的问题有疑问,请详细告诉我。
-
每个
<panel>是否需要渲染三个<li>或者问题只是取决于您要编译一个指令或另一个指令的哪个ID?
标签: javascript angularjs angularjs-directive angularjs-ng-repeat