Масавая прывязка CSS класаў у Angular

З дапамогай дырэктывы ngClass можна ўключаць і выключаць у тэгу адразу набор CSS класаў. Дырэктыва значэннем прымае аб'ект, ключамі якога будуць класы, а значэннямі - булевы значэнні. Клас будзе ўключаны, калі для яго ўстаноўлена значэнне true, і выключаны, калі false.

Давайце паглядзім на практыцы. Хай у нас ёсць наступныя класы:

app/app.component.css.blue {
  color: blue;
}

.bold {
  font-weight: bold;
}

Давайце паглядзім на прыкладах, як уключаць і выключаць гэтыя класы для блока.

Прыклад

Уключым адзін клас і выключым другі:

app/app.component.html<div [ngClass]="{blue: true, bold: false}">
  text
</div>

Прыклад

Хай станы класаў захоўваюцца ў уласцівасцях класа:

app/app.component.tsexport class AppComponent {
  public isBlue: boolean = true;
  public isBold: boolean = false;
}

Прывядзім бачнасць класа ў залежнасці ад значэнняў нашых уласцівасцяў:

app/app.component.html<div [ngClass]="{blue: isBlue, bold: isBold}">
  text
</div>

Прыклад

У ўласцівасці можа быць цэлы аб'ект з класамі і станамі:

app/app.component.tsexport class AppComponent {
  public styles = {
    blue: false,
    bold: true,
  }
}

Прывядзім гэты аб'ект да нашага блока:

app/app.component.html<div [ngClass]="styles">
  text
</div>

Прыклад

Можна значэнні для нашага аб'екта атрымаць з іншых уласцівасцяў класа:

app/app.component.tsexport class AppComponent {
  public isBlue: boolean = false;
  public isBold: boolean = true;

  public styles = {
    blue: this.isBlue,
    bold: this.isBold,
  }
}

Прывядзім гэты аб'ект да нашага блока:

app/app.component.html<div [ngClass]="styles">
  text
</div>

Практычныя задачы

Задание 1

Стварыце два CSS класы. Хай адзін з іх вызначае фон блока, а другі - памер шрыфту.

Задание 2

Зрабіце дзве кнопкі. Хай націск на першую кнопку тоггліць першы клас, а націск на другую - тоггліць другі клас.