2

angularJsがそのブランチを1つしかレンダリングしていない場合でも、2回実行されるコードがあります。

<div ng-Show="SomeCondition">
...
</div>
<div ng-Hide="SomeCondition">
...
</div>

AngularJs は div の 1 つだけを正しくレンダリングしていますが、両方を処理しています。各セクションが非常に大きいため、これはパフォーマンスの低下につながります。実行の分岐の 1 つから処理を削除する方法はありますか?

4

1 に答える 1

2

あなたが探しているのはng-switch、「DOM 構造を条件付きで変更する」というものです。これは、CSS を調整するだけの ng-hide/ng-show とは異なり、他のケースは実行されないことを意味します。

http://docs.angularjs.org/api/ng.directive:ngSwitch

<div ng-switch on="SomeCondition">
    <div ng-switch-when="true">Example</div>
    <span ng-switch-when="false">Example Two</span>
    <span ng-switch-when="somethingElse">Example Three</span>
    <span ng-switch-default>default</span>
  </div>
于 2013-05-07T03:20:51.933 に答える