2014-07-04 6 views
17

Was ist der Unterschied zwischen den beiden folgenden Code-Schnipsel ist,
Code 1:AngularJS, Unterschied zwischen ng-Klasse und Klasse mit Winkelausdruck?

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

Code 2:

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

Ich glaube, 'ng-Klasse' wird am Ende jedes' Digest' ausgewertet, wobei '{{getClass()}}' einmal ausgewertet wird. – Pete

+0

'ng-Klasse' wird normalerweise verwendet, um Ausdrücke auszuwerten und Klasse (n) basierend auf Ausdrücken anzuwenden – charlietfl

+2

@Pete nicht wirklich, da es in einem eckigen Ausdruck ist, wird es mit jedem Bereichswechsel ausgewertet – charlietfl

Antwort

6

Mit dem ersten Beispiel vor Winkel Lasten Ihre Klasse buchstäblich „sein {{ getClass()}} ". Während im zweiten Beispiel das div keine Klasse hat, bis angular sein erstes Digest ausführt.

Es kann einige kleine Unterschiede mit der Neuberechnung geben, aber Angular wird beide auf dem neuesten Stand halten. Bevor ich die erste Methode mit Animation benutze, habe ich schon Probleme mit der Animation von ng-class.

+0

Sie sind nicht wirklich die gleichen, wenn Sie Bedingungen in 'ng-Klasse' verwenden. Das Ergebnis des OP-Beispiels wird zu demselben Ergebnis führen, aber "ng-class" hat einen spezifischeren Verwendungszweck als "class" – charlietfl

+0

Ich meine, dass seine zwei Beispiele ziemlich identisch sind. Nicht ng-class und class = "{{}}" – rob

+0

rechts, aber in einem Fall wie 'class =" form-group "ng-class =" {'hat-fehler': form.course.untertitel. $ Invalid && isSubmitted } "Sie sind nicht annähernd gleich – charlietfl