如何在不破坏dom树顺序的情况下对ng-show进行分组?
原因:我想减少观察者的数量
例如,我有这些ng-show:
<ul>
<li>A</li>
<li>B</li>
<li ng-show="canEdit">C</li>
<li ng-show="canEdit">D</li>
<li ng-show="canEdit">E</li>
</ul>我能做这样的事情吗:
<ul>
<li>A</li>
<li>B</li>
{{ng-show-start(canEdit)}}
<li>C</li>
<li>D</li>
<li>E</li>
{{ng-show-end(canEdit)}}
</ul>使用DOM元素而不是ng- show -start&end也可以是一种解决方案,但它必须能够删除其元素并在true上显示内容。
发布于 2018-09-10 20:00:27
我知道这个问题已经存在三年了,可能已经无关紧要了,但是在angular 1.2+中有以下解决方案
<ul>
<li>A</li>
<li>B</li>
<li ng-show-start="canEdit">C</li>
<li>D</li>
<li ng-show-end="canEdit">E</li>
</ul>发布于 2015-02-22 06:34:07
如果canEdit在初始赋值后不会改变,那么你可以使用angular 1.3中引入的一次性绑定。ng-show="::canEdit"。https://docs.angularjs.org/guide/expression
如果您确实希望对<li>标记进行分组,则需要将它们包装在一个html元素中,并将ng-show放在该元素上
不过,我不认为你需要担心太多的观察者。我相信(虽然不确定) angular只会给canEdit分配一个观察者,因为它是一个绑定在多个位置的单一变量
https://stackoverflow.com/questions/28651924
复制相似问题