Angular 2通过[class.className]绑定添加多个类

时间:2017-04-03 08:59:22

标签: javascript angular binding

虽然添加单个类以这种方式运行良好 -

[class.loading-state]="loading"

但是如何添加多个类 如果loading true"loading-state" & "my-class",请添加课程 - [class] binding

如何通过{{1}}

完成此操作

2 个答案:

答案 0 :(得分:50)

您只需使用ngClass

即可

这里的第一个,第二个和第三个是类的名称。

而不是真/假,你可以直接把条件放在那里

 <div [ngClass]="{'first': true, 'second': true, 'third': false}">...</div>

在你的情况下

 <div [ngClass]="{'loading-state': loading, 'my-class': loading }">...</div>

或更短的Veriosn(如@ matko.kvesic所评论)

<div [ngClass]="{'loading-state my-class': loading}">...</div>

答案 1 :(得分:3)

尽管Vivek Doshi的答案是完全正确的,但下面我将其他选择用于不同的布尔变量:

第一个解决方案:[class.className]

模板:

<div [class.first-class]="addFirst" [class.second-class]="addSecond">...</div>

组件:

export class MyComponent {
  ...
  addFirst: boolean;
  addSecond: boolean;
  ...
}

第二个解决方案:[ngClass]具有方法绑定

模板:

<div [ngClass]="setClasses()">...</div>

组件:

export class MyComponent {
  ...
  addFirst: boolean;
  addSecond: boolean;
  ...
  setClasses() {
    return {
      'first-class': this.addFirst,
      'second-class': this.addSecond
    };
  }
  ...
}

最后一个解决方案,但并非最不重要:

模板:

<div [ngClass]="{'first-class': addFirst, 'second-class': addSecond}">...</div>

组件:

export class MyComponent {
  ...
  addFirst: boolean;
  addSecond: boolean;
  ...
}