【发布时间】:2013-03-10 16:57:18
【问题描述】:
当我想将 ui-if (anguluarUi) 与 ng-repeat 一起使用时(我认为它在那里最有用)我得到一个错误:
Error: Multiple directives [uiIf, ngRepeat] asking for transclusion on: <!-- uiIf: oConnection.aOptions -->
有没有办法把这两者结合起来?
编辑:
<ng-repeat><div ui-if>...
不幸的是(目前)不可能。
我知道我可以将 ng-show 和 ng-repeat 结合起来,但不一样。
我也不想将 ui-if 放在重复之外,因为我想将重复的值用于条件。
【问题讨论】:
-
我不这么认为,为什么?此外,有条件地更改 ngRepeat 中的 dom 结构会影响性能。您可以使用 ngShow 或仅过滤 ngRepeat 源。
-
另外,对于您的问题:两个指令不能要求在同一元素上进行嵌入、模板替换和隔离范围,因为它们确实相互冲突,角度如何决定遵循哪个指令?如果您要使用 ui-if,那么您将无法在 ngRepeat 之外或在其内部使用它,但不能在同一元素上使用它
-
@fastreload:谢谢你的解释。我想可能是这样。有一个会很高兴......好吧,有过滤器功能。我想我会坚持下去。
-
你也可以有条件地将一个类应用到一个带有 ngClass 的元素上,并将它与 ngRepeat 的索引器结合起来。例如
ng-class="{blueBg: $index % 2 == 0}" -
使用 @joshkurz 建议的过滤器,或/和 ngClass 如果您需要的话。
标签: angularjs angular-ui