2015-01-15 8 views
15

Sono nuovo di AngularJS e capisco che la direttiva ngClass può essere utilizzato per inserire le classi in modo dinamico in elementi come:ngClass non funziona?

<input ng-class="{some-class: condition, another-class: anotherCondition}"> 

E angolare valuterà automaticamente quali condizioni sono vere e inserirà quelle classi particolari nell'elemento .

Ora sto cercando di fare qualcosa di simile:

<div class="form-group" ng-class="{has-success: form.email.$valid}"> 

Dal momento che ho bootstrap, si colorerà automaticamente l'etichetta e l'ingresso verde se l'email è valido. Ma non funziona e sto ottenendo questo errore particolare nella console:

Error: [$parse:syntax] http://errors.angularjs.org/1.2.27/$parse/syntax?p0=-&p1=is%20unexpected%2C%20expecting%20%5B%3A%5D&p2=5&p3=%7Bhas-success%3A%20form.email.%24valid%7D&p4=-success%3A%20form.email.%24valid%7D 
z/<@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js:6:450 

e così via ....

Che cosa sto facendo di sbagliato? È un problema di sintassi?

risposta

27

C'è un trattino nel nome della classe, quindi utilizzare le virgolette singole!

ng-class="{'has-success': form.email.$valid}" 
+0

Che tempismo .. Le nostre risposte sono pubblicate esattamente allo stesso tempo .. 17-21-21, eri millisecondi davanti a me ..: D – PSL

+0

@PSL - Hah ... So che sei sempre su queste domande angolari, devi essere veloce! – tymeJV

+0

Questo è esattamente quello che stavo pensando. Ora quale accetto? E inoltre la guerra di upvote si trova nelle vicinanze. – Rohan

10

è chiaramente un errore del parser, avete sintassi non valida a causa della presenza di - in nome della proprietà @{has-success: form.email.$valid}. Avresti bisogno di avvolgerli tra virgolette.

Prova: -

<div class="form-group" ng-class="{'has-success': form.email.$valid}">