197 votes

Différence entre double et simple accolade dans AngularJS ?

Je suis nouveau dans ce monde angulaire, je suis un peu confus avec l'utilisation des doubles accolades {{}} et des simples accolades {} ou parfois aucune accolade n'est utilisée pour inclure l'expression comme dans les directives

  1. ng-class={expression}
  2. liaison de données normale comme {{obj.key}}
  3. ng-hide='mydata==="red"

289voto

CodeHater Points 13377

{{}} - double curly braces:

{{}} sont des expressions Angular et sont très utiles lorsque vous souhaitez écrire quelque chose en HTML:

    {{planet.name == "Earth" ? "Oui! Nous sommes chez nous!" : "Eh! Où sommes-nous?"}}

Ne les utilisez pas à un endroit qui est déjà une expression!

Par exemple, la directive ngClick traite tout ce qui est écrit entre les guillemets comme une expression:

{} - accolades simples:

{} comme nous le savons représentent des objets en JavaScript. Ici aussi, rien de différent:

Avec quelques directives comme ngClass ou ngStyle qui acceptent des map:

{{viruses.length}} virus trouvés!

pas de crochets:

Comme déjà mentionné, il suffit de ne pas utiliser de crochets à l'intérieur des expressions. Très simple:

    Alarme! Tous les singes se sont échappés!

2 votes

Nous pouvons utiliser {{}} avec la directive ng-include, dans la propriété ng-src.

5 votes

Comme quelqu'un l'a mentionné dans les commentaires, les doubles accolades {{}} doivent être placées dans la directive ng-src entre guillemets. Mais pourquoi ng-src peut-il le faire? Y a-t-il un nom pour un type spécial de directives qui prend {{}} à l'intérieur de guillemets?

0 votes

Y a-t-il une différence entre {{foo-bar}} et "{{foo-bar}}" ?

1voto

riyas va Points 36

Une autre chose à propos de {{}} il est également utilisé comme Watcher.. veuillez éviter autant que possible pour de meilleures performances

4 votes

Avez-vous voulu dire {{}} nuit aux performances ? Pouvez-vous fournir une source pour le prouver, s'il vous plaît ?

2 votes

Peut quelqu'un confirmer cela ?

1voto

Pleebo Points 63

Je sais que c'est un ancien message et il pourrait être un peu hors sujet, mais ceci est en réponse à @DonD et @GafrieldKlon...

Il semblerait qu'un observateur soit en fait placé si vous utilisez la directive ng-bind, pas lors de l'utilisation de {{}}. Cela étant dit, je crois que la réponse de @riyas ci-dessus est toujours partiellement vraie en ce sens qu' éviter {{}} est généralement meilleur en termes de performances, mais pas pour la raison indiquée.

Cette réponse à un autre message explique ceci plus en détail.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X