2014-07-04 6 views
17

Jaka jest różnica między dwiema następującymi fragmentów kodu,
Kod 1:AngularJS, różnica między klasą ng a klasą z wyrażeniem kątowym?

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

Kod 2:

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

Wierzę, że 'ng-class' będzie oceniane na końcu każdego' digest ', gdzie '{{getClass()}}' jest oceniany jeden raz. – Pete

+0

'ng-class' jest zwykle używany do oceny wyrażeń i stosowania klas (klas) na podstawie wyrażeń – charlietfl

+2

@ Naprawdę nie należy, ponieważ jest w kanciastym wyrażeniu zostanie ocenione przy każdej zmianie zakresu – charlietfl

Odpowiedz

6

W pierwszym przykładzie przed kątowych ładunku klasa będzie dosłownie „{{ getClass()}} ". Podczas gdy w drugim przykładzie div nie będzie miał klasy, dopóki kątowa nie przejdzie pierwszego trawienia.

Po przeliczeniu mogą wystąpić drobne różnice, ale Angular będzie je aktualizował. Przed użyciem pierwszej metody z animacją napotkaliśmy problemy, ponieważ klasa ng ma pewne podpięcia do animacji.

+0

nie są one takie same, gdy używasz warunkowych w 'ng-class'. Rezultat z przykładu OP da wynik taki sam, ale 'ng-class' ma bardziej specyficzne zastosowanie niż' class' również – charlietfl

+0

Mam na myśli to, że jego dwa przykłady są prawie takie same. Nie ng-class i class = "{{}}" – rob

+0

w prawo, ale w przypadku takim jak 'class =" grupa-form "ng-class =" {'has-error': form.course.subtitle. $ Invalid && isSubmitted } "' one nie są nigdzie w pobliżu tego samego – charlietfl

Powiązane problemy