Nếu bạn không muốn đặt tên lớp CSS vào Trình điều khiển như tôi thì đây là một mẹo cũ mà tôi sử dụng kể từ trước v1. Chúng ta có thể viết một biểu thức đánh giá trực tiếp tên lớp đã chọn , không cần chỉ thị tùy chỉnh:
ng:class="{true:'selected', false:''}[$index==selectedIndex]"
Xin lưu ý cú pháp cũ với dấu hai chấm.
Ngoài ra còn có một cách mới tốt hơn để áp dụng các lớp một cách có điều kiện, như:
ng-class="{selected: $index==selectedIndex}"
Angular hiện hỗ trợ các biểu thức trả về một đối tượng. Mỗi thuộc tính (tên) của đối tượng này hiện được coi là một tên lớp và được áp dụng tùy thuộc vào giá trị của nó.
Tuy nhiên những cách này không có chức năng như nhau. Đây là một ví dụ:
ng-class="{admin:'enabled', moderator:'disabled', '':'hidden'}[user.role]"
Do đó, chúng ta có thể sử dụng lại các lớp CSS hiện có bằng cách cơ bản ánh xạ một thuộc tính mô hình thành một tên lớp và đồng thời giữ các lớp CSS ra khỏi mã Trình điều khiển.