Visibilità:
Mentre angularjs sta eseguendo il bootstrap, l'utente potrebbe vedere le parentesi posizionate nell'html. Questo può essere gestito con ng-cloak
. Ma per me questa è una soluzione alternativa, che non ho bisogno di usare, se uso ng-bind
.
Prestazione:
Il {{}}
è molto più lento .
Questa ng-bind
è una direttiva e posizionerà un watcher sulla variabile passata. Quindi ng-bind
verrà applicato solo quando il valore passato cambia effettivamente .
Le parentesi invece saranno sporche controllate e aggiornate in ogni $digest
, anche se non è necessario .
Attualmente sto realizzando una grande app a pagina singola (~ 500 associazioni per visualizzazione). Passare da {{}} a rigoroso ci ha ng-bind
fatto risparmiare circa il 20% in ogni scope.$digest
.
Suggerimento :
Se usi un modulo di traduzione come angular-translate , preferisci sempre le direttive prima dell'annotazione tra parentesi.
{{'WELCOME'|translate}}
=> <span ng-translate="WELCOME"></span>
Se hai bisogno di una funzione di filtro, meglio scegliere una direttiva, che in realtà utilizza solo il tuo filtro personalizzato. Documentazione per il servizio $ filter
AGGIORNAMENTO 28.11.2014 (ma forse fuori tema):
In Angular 1.3x è bindonce
stata introdotta la funzionalità. Pertanto è possibile associare il valore di un'espressione / attributo una volta (verrà associato quando! = 'Non definito').
Questo è utile quando non ti aspetti che il tuo legame cambi.
Utilizzo: Posiziona ::
prima della rilegatura:
<ul>
<li ng-repeat="item in ::items">{{item}}</li>
</ul>
<a-directive name="::item">
<span data-ng-bind="::value"></span>
Esempio:
ng-repeat
per generare alcuni dati nella tabella, con più associazioni per riga. Binding di traduzione, output di filtro, che vengono eseguiti in ogni digest dell'ambito.
ngBind
invece che{{ expression }}
se un modello viene momentaneamente visualizzato dal browser nel suo stato grezzo prima che Angular lo compili. Dato chengBind
è un attributo element, rende i binding invisibili all'utente durante il caricamento della pagina." - ma nulla è menzionato sulle prestazioni.