2015-01-15 11 views
15

Jestem nowy angularjs i rozumiem, że dyrektywa ngClass mogą być wykorzystane w celu dodania klas dynamicznie do elementów, takich jak:ngClass nie działa?

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

i kątowe automatycznie ocenić, które warunki są spełnione i wstawi te poszczególnych klas w elemencie .

Teraz staram się zrobić coś takiego:

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

Ponieważ mam bootstrap, zostanie ona automatycznie pokolorować etykietę i wejście zielony czy e-mail jest nieprawidłowy. Ale to nie działa, a ja dostaję ten konkretny błąd w konsoli:

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 

i tak dalej ....

Co robię źle? Czy to jest problem z składnią?

Odpowiedz

27

Tam jest kreska w nazwie twojej klasy, więc używaj pojedynczych cudzysłowów!

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

Co za moment .. Nasze odpowiedzi są umieszczane dokładnie w tym samym czasie .. 17-21-21, byłaś milisekund przede mną ..: D – PSL

+0

@PSL - Hah ... Wiem, że zawsze jesteś na tych kątowych pytaniach, musisz być szybki! – tymeJV

+0

To jest dokładnie to, co myślałem. Teraz, co akceptuję? A plus wojna w pobliżu jest również w pobliżu. – Rohan

10

Jest wyraźnie błąd składni, masz nieprawidłową składnię powodu obecności - w imię własności @{has-success: form.email.$valid}. Będziesz musiał zawinąć je w cudzysłów.

Spróbuj: -

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