Apa perbedaan antara:
{{::office.name}}
dan
{{office.name}}
di angularJS?
Jawaban:
Ekspresi yang dimulai dengan
::
dianggap sebagai ekspresi satu kali. Ekspresi satu kali akan berhenti menghitung ulang setelah stabil, yang terjadi setelah intisari pertama jika hasil ekspresi adalah nilai yang tidak ditentukan (lihat algoritme stabilisasi nilai di bawah).
Dalam banyak situasi, nilai harus hanya ditampilkan dalam tampilan dan tidak akan pernah diperbarui dari tampilan atau pengontrol. Namun, jika pengikatan dua arah digunakan, $digest
akan memeriksa setiap perubahan ekspresi di setiap siklus, yang tidak diperlukan. Dalam kasus ini, ::
harus digunakan sebelum ekspresi. Seperti yang dinyatakan dalam pernyataan di atas, ini lebih efisien daripada sintaks pengikatan dua arah untuk kasus semacam itu.
Blog: AngularJS sintaks pengikatan satu kali dari @Todd Motto
Singkatnya, ketika kita mendeklarasikan nilai seperti
{{ ::foo }}
di dalam DOM, setelah nilai ini ditentukan, Angular akan merendernya, melepaskannya dari pengamat dan dengan demikian mengurangi volume binding di dalam$digest
loop. Sederhana!