2015-01-15 19 views
15

Tôi mới vào AngularJS và tôi hiểu rằng chỉ thị ngClass có thể được sử dụng để chèn các lớp học năng động vào các yếu tố như:ngClass không làm việc?

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

Và góc sẽ tự động đánh giá những điều kiện nào là đúng sự thật và sẽ chèn những lớp học đặc biệt trong phần tử .

Bây giờ tôi đang cố gắng để làm một cái gì đó như:

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

Kể từ khi tôi có bootstrap, nó sẽ tự động tô màu cho nhãn và đầu vào màu xanh lá cây nếu email là hợp lệ. Nhưng nó không hoạt động và tôi nhận được lỗi này đặc biệt trong giao diện điều khiển:

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 

và vân vân ....

Tôi đang làm gì sai? Nó là một vấn đề cú pháp?

Trả lời

27

Theres một dấu gạch ngang trong tên lớp của bạn, vì vậy sử dụng dấu nháy đơn!

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

Thật là một thời gian .. câu trả lời của chúng tôi được đăng tải chính xác cùng một lúc .. 17-21-21, bạn đã mili giây trước tôi ..: D – PSL

+0

@PSL - Hah ... tôi biết bạn luôn bằng các câu hỏi kiễu góc, gotta được nhanh chóng! – tymeJV

+0

Đây chính là những gì tôi đã suy nghĩ. Bây giờ tôi chấp nhận cái gì? Và cộng với cuộc chiến upvote cũng ở gần đó. – Rohan

10

Đó rõ ràng là một lỗi phân tích cú pháp, bạn có cú pháp hợp lệ do sự hiện diện của - trong tên thuộc tính @{has-success: form.email.$valid}. Bạn sẽ cần phải quấn chúng trong dấu ngoặc kép.

Hãy thử: -

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