AngularJSには、バージョン1.3.0-beta.10以降の新しい機能があります: "lazy one-time binding" 。
単純な式の前に::
を付けると、式が最初に評価された後に監視を停止するようにangularと伝えます。一般的な例は次のようになります。
<div>{{::user.name}}</div>
次のような式に類似した構文はありますか?
<div ng-if="user.isSomething && user.isSomethingElse"></div>
<div ng-class="{classNameFoo: user.isSomething}"></div>
はい。 ngIf
またはngClass
の式も含め、すべての式の前に::
を付けることができます。
<div ng-if="::(user.isSomething && user.isSomethingElse)"></div>
<div ng-class="::{classNameFoo: user.isSomething}"></div>
実際、 コード は、式の最初の2文字が:
であることを確認して、ワンタイムバインディングをアクティブにします(そして、それらを削除します。したがって、括弧は不要です) )。他のすべては同じままです。