【发布时间】:2015-11-18 19:53:47
【问题描述】:
查看下面的示例。在这种情况下,为 myList 中的每个项目调用“expensiveFunction”
<ul>
<li ng-show="expensiveFunction(period)" ng-repeat="a in myList">
<a ng-click="onMove(period)">Move here </a>
</li>
<li ng-hide="!canBook">
<small>No free resources</small>
</li>
</ul>
关于如何防止这种情况的任何想法?
<ul>
<!-- Possible, but creates invalid html -->
<div ng-show="expensiveFunction(period)">
<li ng-repeat="a in myList">
<a ng-click="onMove(period)">Move here </a>
</li>
</div>
<li ng-hide="!canBook">
<small>No free resources</small>
</li>
</ul>
感谢您的建议
拉西
【问题讨论】:
-
为什么生成的html无效?
-
@AndreKreienbring 它在 ul 下创建一个 div。它应该只有 li 作为直接子节点
-
通常你根本不应该从 html 调用昂贵的函数,因为它们无论如何都会启动每个摘要,你无法控制它
-
最简单的方法是使用两个 'ul' 并将 ng-hide 和 ng-show 添加到它们。
-
@jan 谢谢,这是一个可能的 sln,但我的例子有点简化,我不想复制我的所有标记
标签: angularjs angularjs-ng-repeat angular-ng-if