Visibilité:
Pendant que votre angularjs démarre, l'utilisateur peut voir vos crochets placés dans le html. Cela peut être géré avec ng-cloak
. Mais pour moi, c'est une solution de contournement, que je n'ai pas besoin d'utiliser, si j'utilise ng-bind
.
Performance:
Le {{}}
est beaucoup plus lent .
Il ng-bind
s'agit d'une directive qui placera un observateur sur la variable transmise. Donc, ng-bind
cela ne s'applique que lorsque la valeur transmise change réellement .
Les supports en revanche seront cochés et rafraîchis à chaque fois $digest
, même si ce n'est pas nécessaire .
Je suis en train de créer une grande application d'une seule page (~ 500 liaisons par vue). Passer de {{}} à strict ng-bind
nous a permis d'économiser environ 20% à chaque fois scope.$digest
.
Suggestion :
Si vous utilisez un module de traduction tel que angular-translate , préférez toujours les directives avant l'annotation des crochets.
{{'WELCOME'|translate}}
=> <span ng-translate="WELCOME"></span>
Si vous avez besoin d'une fonction de filtre, optez plutôt pour une directive, qui utilise en fait simplement votre filtre personnalisé. Documentation pour le service $ filter
MISE À JOUR 28.11.2014 (mais peut-être hors du sujet):
Dans Angular 1.3x, la bindonce
fonctionnalité a été introduite. Par conséquent, vous pouvez lier la valeur d'une expression / d'un attribut une fois (sera lié lorsque! = 'Non défini').
Ceci est utile lorsque vous ne vous attendez pas à ce que votre liaison change.
Utilisation: Placez ::
avant votre reliure:
<ul>
<li ng-repeat="item in ::items">{{item}}</li>
</ul>
<a-directive name="::item">
<span data-ng-bind="::value"></span>
Exemple:
ng-repeat
pour afficher des données dans le tableau, avec plusieurs liaisons par ligne. Liaisons de traduction, sorties de filtre, qui s'exécutent dans chaque résumé de portée.
ngBind
au lieu de{{ expression }}
si un modèle est momentanément affiché par le navigateur dans son état brut avant que Angular le compile. Puisqu'ilngBind
s'agit d'un attribut d'élément, il rend les liaisons invisibles à l'utilisateur pendant le chargement de la page." - mais rien n'est mentionné sur les performances.