我是AngularJS的新手,我理解ngClass指令可以用来动态地将类插入到以下元素中:
<input ng-class="{some-class: condition, another-class: anotherCondition}">
而angular将自动评估哪些条件为真,并将元素中的特定类插入。
现在我正尝试做类似的事情:
<div class="form-group" ng-class="{has-success: form.email.$valid}">
由于我有自举功能,因此如果电子邮件有效,它会自动为标签着色并输入绿色。但它不起作用,我在控制台中收到此特定错误:
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
依旧......
我做错了什么?这是语法问题吗?
答案 0 :(得分:37)
你的班级名称中有一个短划线,所以请使用单引号!
ng-class="{'has-success': form.email.$valid}"
答案 1 :(得分:13)
显然是解析器错误,由于属性名@ -
中存在{has-success: form.email.$valid}
,您的语法无效。你需要用引号括起来。
尝试: -
<div class="form-group" ng-class="{'has-success': form.email.$valid}">
答案 2 :(得分:2)
如果在类名中使用“-”,则应使用单引号引起来。
[ngClass] = "{'some-class': condition}"
否则可以使用
[ngClass] = "{someClass : condition}"
答案 3 :(得分:0)
这对我有用
[ngClass] = "{ 'color-red': isRed}"
答案 4 :(得分:0)
虽然@tymeJV 提到了这个问题的实际原因,但在某些情况下,如果清除浏览器选项卡的缓存,using
、ngClass
和相关指令会起作用。 ngStyle
或在新标签页中打开都可以,如果您认为指令定义正确。