在AngularJS ng-class中链接多个表达式

时间:2013-09-30 16:33:44

标签: javascript angularjs

我正在尝试将两个不同的表达式链接到ng-class,其中一个已应用了过滤器,类似于:

<body ng-class="controller | camel2hyphens" ng-class="{overflow: isOverflow}">

但Angular只使用其中一个(这是有意义的)。

我尝试过这样使用表达式数组:

<body ng-class="[(controller | camel2hyphens), {overflow: isOverflow}]">

但是设置的CSS类是:

class="login-controller [object Object]"

有没有办法用ng-class完成此任务(无需在Controller中使用逻辑编写方法)。

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以将classng-class

结合使用
<body class="{{controller | camel2hyphens}}" ng-class="{overflow: isOverflow}">

答案 1 :(得分:3)

似乎只有Angular >=1.4支持您尝试这样做的方式。

Angular 1.21.3

  

如果表达式求值为数组,则数组的每个元素都应该是一个或多个以空格分隔的类名的字符串。

这样,您自己的建议是最好的,因为所有代码都保留在ng-class中。

ng-class="[(controller | camel2hyphens), isOverflow ? 'overflow' : '']