如何使用角度中的ng类添加具有不同条件的多个类名?

时间:2015-04-15 09:59:00

标签: javascript angularjs angularjs-directive

我需要在特定条件下将2个类名添加到元素中:

ng-class="(commentItem.comment | escapeHtml | direction)"

适用于第一个,使用" escapeHtml"获取给定html字符串的文本内容。过滤,然后使用"方向"获取文本的方向;过滤。 现在我需要以这种方式向同一元素添加另一个类:

ng-class="{'hidden': commentItem.isEditing}"

如何在一个ngClass指令中混合它们?

注意
我认为不可能使用

{"exp1": condition1, "exp2": condition2}

因为在第一个条件中,过滤器为我返回类名。

1 个答案:

答案 0 :(得分:0)

看看这个plnkr

ng-class关于论证的文档说明:

  

表达式为eval。 评估结果可以是字符串   表示空格分隔的类名,数组或类的映射   名称为布尔值。

它不必是文字字符串或地图或数组。你可以让一个函数返回一个类数组:

ng-class="getClasses()"

使用您喜欢的任何内容在控制器中构建数组。如果您需要过滤器,请使用$filter服务。

如果您不想使用控制器函数来处理视图细节,可以将数组传递给ng-class,并为每个元素写入返回类名或空字符串的na表达式:

ng-class="[!!redbg ? 'redbg' : '', 'gr' + 'een']"