2014-07-04 18 views
17

Qual è la differenza tra le seguenti due frammenti di codice,
Codice 1:AngularJS, differenza tra ng-class e class con espressione angolare?

<div class={{getClass()}}/> 

Codice 2:

<div ng-class=getClass()/> 
+2

Credo che 'ng-class' sarà valutato alla fine di ogni' digest', dove '{{getClass()}}' viene valutato una volta. – Pete

+0

'ng-class' viene in genere utilizzato per valutare espressioni e applicare classi in base alle espressioni – charlietfl

+2

@Pete non proprio, poiché è in un'espressione angolare verrà valutato con qualsiasi modifica dello scope – charlietfl

risposta

6

Con il primo esempio prima di carichi angolari tua classe sarà letteralmente "{{ getClass()}}". Mentre nel secondo esempio il div non avrà una classe fino a quando l'angolare esegue il suo primo riassunto.

Ci potrebbero essere alcune piccole differenze con quando vengono ricalcolati ma Angular manterrà entrambi aggiornati. Ho riscontrato dei problemi prima di utilizzare il primo metodo con Animazione dato che la classe ng ha alcuni hook nell'animazione.

+0

non sono esattamente gli stessi quando si inizia a usare le condizioni in 'ng-class'. L'esito dell'esempio OP sarà lo stesso, ma 'ng-class' ha un uso più specifico di' class' anche – charlietfl

+0

Voglio dire che i suoi due esempi sono praticamente gli stessi. Not ng-class and class = "{{}}" – rob

+0

right ma in un caso come 'class =" form-group "ng-class =" {'has-error': form.course.subtitle. $ Invalid && isSubmit } "' non sono affatto vicini allo stesso – charlietfl

Problemi correlati