Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs-分组ng秀_Javascript_Angularjs - Fatal编程技术网

Javascript Angularjs-分组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

如何在不破坏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>
</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
    ,则可以使用您自己的指令。

    答案似乎取决于您对它们进行分组的原因<例如,代码>
  • {{item}}
  • 。将ng show分组的原因是为了最小化$watchers,ng repeat将返回相同数量的watchers,并为每个ng show指定一个watcher,如果canEdit不打算更改,我将在服务器端执行此操作。。不是客户端。谢谢你抽出时间