网站搜索

typescript - 我如何在 Angular 4 的 [ngClass] 中同时使用 map 和数组?


在 Angular 4 中,我如何在 [ngClass] 中同时使用 map 和数组?

例如:

[ngClass]="[{'some-class':whenAppears()}, someReturnedClass()]"

其中 someReturnedClass 是:

someReturnedClass() {
  return 'someClassName'
}

我尝试了这样:[ngClass]="[{'some-class':whenAppears()}, someReturnedClass()]"

和 [ngClass]="[{'some-class':whenAppears()}]" class="someReturnedClass()"

和 [ngClass]="{'some-class':whenAppears(), '{{someReturnedClass()}}':true}"

但是首先——会报错,其次会替换类,第三也不会工作 :(

如何在不改变当前逻辑的情况下进行合并?

答案#1

你可以使用以下语法。

[ngClass]="[whenAppears() ? 'some-class': '', someReturnedClass()]"

Plunker 演示。

答案#2

试试这个:

<div [ngClass]="someReturnedClass()" [class.some-class]="whenAppears()" ></div>