いくつかの条件 (同じ条件) に従って、Angular の ng-if を使用して表示/非表示になる、別の要素を持つ html ページがあります。
コントローラーで、boolean
変数を作成します。
$scope.myCondition = getValue();
私の見解では、ng-if
ディレクティブを使用してこの変数をリッスンします。
パフォーマンスが向上するのは次のとおりです。
- この条件で複数のよりクリーンなコードを記述します。
ng-if
<div>
<div ng-if="myCondition" >-- a --</div>
<div ng-if="!myCondition">-- A --</div>
<div>
-- text, text, text... --
</div>
<div ng-if="myCondition" >-- b --</div>
<div ng-if="!myCondition">-- B --</div>
<div>
-- text, text, text... --
</div>
<div ng-if="myCondition" >-- c --</div>
<div ng-if="!myCondition">-- C --</div>
<div>
-- text, text, text... --
</div>
</div>
- コードの重複を(ビューで)記述しますが、singleを使用します
ng-if
:
<div ng-if="myCondition">
<div>-- a --</div>
<div>
-- text, text, text... --
</div>
<div>-- b --</div>
<div>
-- text, text, text... --
</div>
<div >-- c --</div>
<div>
-- text, text, text... --
</div>
</div>
<div ng-if="!myCondition">
<div>-- A --</div>
<div>
-- text, text, text... --
</div>
<div>-- B --</div>
<div>
-- text, text, text... --
</div>
<div >-- C --</div>
<div>
-- text, text, text... --
</div>
</div>
保守しやすいので、例 No.1 のようにコードを書くことを好みます。$watch
しかし、この方法では、それぞれに対して新しい が作成されるのではないかと心配しましたng-if
。
あれは正しいですか?Angular$watch
は each に対して new を作成しますng-if
が、これは同じ静的条件 (一部の関数の戻り値ではなく、単純な変数) です。
この質問はng-if
指令に関して尋ねましたがng-show
、ng-hide