如何将[ngClass]用于多类条件Angular4

时间:2017-09-19 20:09:26

标签: html angular

目前我的div看起来像这样:

<div class="class-a" [ngClass]="{'class-b': !person.something}">

现在我想要另一个条件......

所以现在我希望这个div属于class-a如果是某个类-b如果有别的东西class-c

我应该怎么做?

即时使用角度4。

谢谢!

3 个答案:

答案 0 :(得分:9)

将它添加为对象文字的属性:

[ngClass]="{'class-b': !person.something, 'other-condition': isOther }"

答案 1 :(得分:5)

另一种选择是,如果您认为需要更复杂的逻辑,或者知道只有一个字符串,则从组件返回一个字符串。这可能更容易测试。

您返回的任何字符串都将呈现为类

[ngClass]="renderClass()"

renderClass() {
  switch(this.user.theme){
    case "dark":
       return "dark-theme"
    case "light":
       return "light-theme"
  }
}

答案 2 :(得分:0)

使用此语法ngStyle的更好方法,因为, 这是未完成的答案。

如果您想为text-info标签切换text-danger<i>之类的类(

some exp ? 'text-info' : 'text-danger'

)。

最好的答案是数组而不是对象。

[ngClass] = "[some exp ? 'text-info' : 'text-danger', ...]"

好运