ngClass不工作?

时间:2015-01-15 17:20:00

标签: javascript angularjs twitter-bootstrap

我是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

依旧......

我做错了什么?这是语法问题吗?

5 个答案:

答案 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 提到了这个问题的实际原因,但在某些情况下,如果清除浏览器选项卡的缓存,usingngClass 和相关指令会起作用。 ngStyle 或在新标签页中打开都可以,如果您认为指令定义正确。