2015-04-15 23 views
5

Sono nuovo di zecca per AngularJS e mentre facevo il corso Codecademy mi sono bloccato. Stavo cercando di ripetere una direttiva usando la seguente sintassi.Sintassi della direttiva ripetizione angolare

<div class="card" ng-repeat="app in apps"> 
    <app-info info="{{ app }}"></app-info> 
</div> 

Ho giocato un po 'e ho capito che avevo bisogno di rimuovere le parentesi graffe.

<div class="card" ng-repeat="app in apps"> 
    <app-info info="app"></app-info> 
</div> 

Ma se non stavo usando una direttiva penso che accetterei le informazioni come questa. AngularJS documentation.

<div class="card" ng-repeat="app in apps"> 
    {{ app }} 
</div> 

Qualcuno potrebbe spiegare perché non ho bisogno delle parentesi graffe per aiutarmi a capire meglio AungularJS. Grazie!

+0

possibile duplicato di [Come ottenere attributi valutati all'interno di una direttiva personalizzata] (http://stackoverflow.com/questions/12371159/how-to-get-evaluated-attributes-inside-a-custom-directive) –

risposta

1

L'utilizzo dei simboli di interpolazione {{}} dipende dall'attuazione della direttiva. Alcune direttive come ng-click='expression' o ng-if='expression' prendono un'espressione senza i doppi riccioli.

Considerando che alcune altre direttive come ng-src='{{expression}}' accettano il simbolo di interpolazione.

Tutto dipende da come è stata impostata la direttiva.

L'utilizzo di base dell'interpolazione è eseguire l'espressione e sostituire il contenuto con il valore restituito di espressione (un valore stringa).

Man mano che si impara di più sulle direttive, si impara come i parametri vengono passati alle direttive utilizzando @,=,&. Questi parametri potrebbero essere un semplice valore stringa (nel qual caso è possibile utilizzare un'interpolazione) o un oggetto o una funzione.

1

In questo caso particolare, utilizzando {{data}} si sta valutando il valore di tale variabile, ma quando lo fai info="app" in altra direttiva che contiene una variabile scope chiamato info, quello che stai facendo è vincolante la variabile info portata della nostra direttiva app-info ai controller (o direttiva parent) Variabile dell'ambito app.

+0

I penso di capire quello che stai dicendo. Puoi inserire la tua risposta in un linguaggio più semplice, quindi è più facile da capire? –

+0

Per impostazione predefinita, i valori degli attributi delle direttive angolari sono considerati [espressioni] (https://docs.angularjs.org/guide/expression) e vengono valutati come tali, ma nel contesto del nodo di testo dell'elemento vengono considerati essere testo semplice e richiedere le parentesi graffe per informare il [parser] (https://docs.angularjs.org/api/ng/service/$parse) che il testo tra le parentesi graffe è un'espressione angolare. – HJ05

+0

@ HJ05 ha la spiegazione corretta – Matho

Problemi correlati