Apa arti dua titik dua di dalam ekspresi sudut {{::}}?

Jawaban:

85

The {{::office.name}}sintaks sudut One-Time mengikat, tersedia sejak versi 1.3
Berikut sebuah blog yang bagus menjelaskan itu.

Teo.sk
sumber
99

Penjilidan satu kali Dari Angular Docs.

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, $digestakan 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 $digestloop. Sederhana!

Tushar
sumber