Visibilitas:
Saat angularjs Anda bootstrap, pengguna mungkin melihat tanda kurung Anda ditempatkan di html. Ini dapat diatasi dengan ng-cloak
. Tetapi bagi saya ini adalah solusi, bahwa saya tidak perlu menggunakan, jika saya menggunakannya ng-bind
.
Kinerja:
The {{}}
adalah jauh lebih lambat .
Ini ng-bind
adalah arahan dan akan menempatkan pengamat pada variabel yang lulus. Jadi ng-bind
hanya akan berlaku, ketika nilai yang diteruskan benar-benar berubah .
Kurung di sisi lain akan kotor diperiksa dan disegarkan di setiap $digest
, bahkan jika itu tidak perlu .
Saat ini saya sedang membangun aplikasi halaman tunggal besar (~ 500 binding per view). Mengubah dari {{}} menjadi ketat ng-bind
memang menghemat sekitar 20% di setiap scope.$digest
.
Saran :
Jika Anda menggunakan modul terjemahan seperti angular-translate , selalu lebih suka arahan sebelum penjelasan tanda kurung.
{{'WELCOME'|translate}}
=> <span ng-translate="WELCOME"></span>
Jika Anda membutuhkan fungsi filter, lebih baik gunakan arahan, yang sebenarnya hanya menggunakan filter kustom Anda. Dokumentasi untuk layanan $ filter
UPDATE 28.11.2014 (tapi mungkin di luar topik):
Di Angular 1.3x bindonce
fungsionalitasnya diperkenalkan. Karena itu Anda dapat mengikat nilai ekspresi / atribut sekali (akan terikat ketika! = 'Tidak terdefinisi').
Ini berguna saat Anda tidak mengharapkan ikatan Anda berubah.
Penggunaan: Tempatkan ::
sebelum Anda mengikat:
<ul>
<li ng-repeat="item in ::items">{{item}}</li>
</ul>
<a-directive name="::item">
<span data-ng-bind="::value"></span>
Contoh:
ng-repeat
untuk menampilkan beberapa data dalam tabel, dengan beberapa binding per baris. Terjemahan-binding, output filter, yang dieksekusi di setiap ringkasan lingkup.
ngBind
daripada{{ expression }}
jika templat ditampilkan sebentar oleh peramban dalam keadaan mentah sebelum Angular mengompilasinya. KarenangBind
merupakan elemen atribut, itu membuat ikatan tidak terlihat oleh pengguna saat halaman dimuat." - tetapi tidak ada yang disebutkan tentang kinerja.