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

Javascript 如何在angular中使用ng类添加具有不同条件的多个类名?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我需要在特定条件下向元素添加2个类名: ng-class="(commentItem.comment | escapeHtml | direction)" 首先,使用“escapeHtml”过滤器获取给定html字符串的文本内容,然后使用“direction”过滤器获取文本的方向。 现在我需要以这种方式向同一元素添加另一个类: ng-class="{'hidden': commentItem.isEditing}" 如何在一个ngClass指令中混合使用它们 注意 我认为不可能使用 {"ex

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

ng-class="(commentItem.comment | escapeHtml | direction)"
首先,使用“escapeHtml”过滤器获取给定html字符串的文本内容,然后使用“direction”过滤器获取文本的方向。 现在我需要以这种方式向同一元素添加另一个类:

ng-class="{'hidden': commentItem.isEditing}"
如何在一个ngClass指令中混合使用它们

注意
我认为不可能使用

{"exp1": condition1, "exp2": condition2}
因为在第一个条件中,过滤器为我返回类名。

看看这个

关于该论点的文档说明:

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

它不必是文字字符串、映射或数组。您可以让函数返回如下所示的类数组:

ng-class="getClasses()"
并使用任何您喜欢的方法在控制器中构造数组。如果需要过滤器,请使用
$filter
服务

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

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

可能重复的可能重复:@tpie这不是重复的,因为条件之间存在差异。请创建一个插入器。我认为创建一个既不是控制器也不是指令的函数是一种反模式方法。我曾在view中解决视图相关问题。因为如果我没有,我现在已经有了一个很长的实用函数列表。如果你确定没有办法混合这种不同的情况,那么我宁愿退一步,防止这种情况发生。谢谢:
你好,普朗克。因此,对数组的每个元素使用一个表达式,并返回一个类名为或为空的字符串。不过我认为您不能以这种方式使用筛选器。最后一个选项是在单个元素上同时使用
ng class
class
ng class=“{xxx:yyy}”class=“{{expression returning class string}}”
这是一个更好的选项。我用过。非常感谢。请在你的答案中加上它