尝试使用对象添加样式适用于 [ngClass],但不适用于 [class]

Trying to add style with objects works with [ngClass], but not with [class]

提问人:Ferna 提问时间:4/15/2020 更新时间:4/15/2020 访问量:274

问:

大家好吗?

我正在尝试将一些类添加到模板上的 div 中。Angular Mainsite 说,关于样式:

NgClass 指令可以用作直接 [class] 绑定的替代方法。但是,最好使用上面的类绑定语法而不使用 NgClass,因为由于 Angular 中类绑定的改进,NgClass 不再提供重要的价值,并且最终可能会在未来被删除。

所以,我正在尝试做:

<div [class]="{class1:condition,class2:condition}"></div>

<div [class]="{'class1':condition,'class2':condition}"></div>

它不起作用。 但是使用 [NgClass] 而不是 [class],它可以完美运行。有人知道为什么吗? 我正在使用 Angular 8.2.14 和 Angular Core 8.3.22。

提前致谢!

CSS Angular 打字稿

评论

0赞 Steve 4/15/2020
我也无法让 [class]={object} 方法工作。但是,[class.myStyle]=“expression”确实有效。但文档清楚地表明对象方法是一个可行的选择。

答:

0赞 jboileau173 4/15/2020 #1

ngClass 和 class 的使用方式完全不同。

ngClass 正在等待一个对象,这就是你的代码使用这个指令的原因。

另一方面,类只是一个 HTML 属性。 如果要添加带有条件的类,则必须按以下方式工作:

<div [class.class1]="condition"
     [class.class2]="condition"></div>

希望能帮到你一点,再见!