Javascript Angularjs-分组ng秀
如何在不破坏dom树顺序的情况下对ng节目进行分组 原因:我想减少观察者的数量 例如,我有以下ng节目:Javascript Angularjs-分组ng秀,javascript,angularjs,Javascript,Angularjs,如何在不破坏dom树顺序的情况下对ng节目进行分组 原因:我想减少观察者的数量 例如,我有以下ng节目: <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&g
<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>
- A
- B
- C
- D
- E
我可以这样做吗:
<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>
- A
- B
{{ng show start(canEdit)}
- C
- D
- E
{{ng show end(canEdit)}
使用DOM元素而不是ng show start&end也可以是一种解决方案,但它必须能够删除其元素并在true上显示内容。如果
canEdit
在初始赋值后不会更改,则可以使用angular 1.3中引入的一次性绑定<代码>ng show=“::canEdit”。
如果您真的想对
标记进行分组,则需要将它们包装在html元素中,并将ng show
放在其上
不过我认为你不必担心太多的观察者。我相信(虽然不确定)angular只会给canEdit分配一个观察者,因为它是一个绑定在多个位置的单一变量,我知道这个问题已经三年了,可能不相关,但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>
- A
- B
- C
- D
- E
-start
和-end
后缀可以与ng-show、ng-if、ng-switch、ng-repeat
一起使用,如果设置了multi-element:true
,则可以使用您自己的指令。答案似乎取决于您对它们进行分组的原因<例如,代码>