有没有办法将使用条件表达式的ng-class与使用字符串语法的ng-class混合使用?

时间:2018-01-03 16:14:15

标签: javascript angularjs

我想根据ngRepeat的索引应用一个类,因此在ngRepeat中我也有ng-init="myIndex = $index"。 在这种情况下,我可以使用ng-class='"color-" + myIndex'来应用color-0,color-1,color-2等类。

此外,如果选择了该元素,则应该应用不同的类,因此我将使用:

ng-class="{'selected': element.selected}"

两个ngClass都可以单独使用,但我找不到在同一个ngClass中同时使用它们的方法。

我尝试了许多不同的ng-class="'color-' + myIndex, {'selected': element.selected}"之类的东西,但总是得到同样的错误:

  

错误:[$ parse:syntax]语法错误:令牌','是一个意外的令牌   在第19栏的表达[' color - ' + myIndex,{'选择':   element.selected}]从[,{' selected':element.selected}]开始。

2 个答案:

答案 0 :(得分:1)

使用列表表示法:

ng-class="['color-' + myIndex, element.selected ? 'selected' : '']"

或:

ng-class="['color-' + myIndex, {true: 'selected'}[element.selected]]"


使用对象表示法:

ng-class="{selected: element.selected, {{ 'color-' + myIndex }}: true}"

或:

ng-class="{selected: element.selected}" class="{{ 'color-' + myIndex }}"

注意:不建议使用最后一种方法,因为它会阻止添加AngularJS类(例如ng-scope ..)。

答案 1 :(得分:1)

如果您使用的是AngularJS&gt; = v1.4,您也可以使用此解决方案: SELECT a.* FROM my_table a JOIN my_table b ON b.date <= a.date WHERE b.date >= '2018-01-13' AND b.action = 'acquire';