違いは何ですか:
{{::office.name}}
そして
{{office.name}}
angularJSで?
回答:
で始まる式
::
は、1回限りの式と見なされます。1回限りの式は、安定すると再計算を停止します。これは、式の結果が未定義の値でない場合、最初のダイジェストの後に発生します(以下の値安定化アルゴリズムを参照)。
多くの場合、値はビューにのみ表示する必要があり、ビューまたはコントローラーから更新されることはありません。ただし、双方向バインディングが使用されている場合、$digest
は、各サイクルで式の変更をチェックします。これは不要です。これらの場合、::
式の前に使用する必要があります。上記のステートメントで述べたように、このような場合には、これは双方向バインディング構文よりも効率的です。
ブログ:AngularJS一回結合構文から@Toddモットー
ナットシェルで
{{ ::foo }}
は、DOM内などの値を宣言すると、この値が定義されると、Angularはそれをレンダリングし、ウォッチャーからバインド解除して、$digest
ループ内のバインディングの量を減らします。シンプル!