Masinis CSS klasių pririšimas Angular

Naudojant direktyvą ngClass galima įjungti ir išjungti žyme iš karto visą CSS klasių rinkinį. Direktyva reikšme priima objektą, kurio raktai bus klasės, o reikšmės - loginės reikšmės. Klasė bus įjungta, jei jai nustatyta reikšmė true, ir išjungta, jei false.

Pažiūrėkime praktiškai. Tarkime, kad turime šias klases:

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

.bold {
  font-weight: bold;
}

Pažiūrėkime pavyzdžiais, kaip įjungti ir išjungti šias klases blokui.

Pavyzdys

Įjunkime vieną klasę ir išjunkime kitą:

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

Pavyzdys

Tarkime, kad klasių būsenos saugomos klasės savybėse:

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

Susiekime klasės matomumą priklausomai nuo mūsų savybių reikšmių:

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

Pavyzdys

Savybėje gali būti visas objektas su klasėmis ir jų būsenomis:

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

Pririškime šį objektą prie mūsų bloko:

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

Pavyzdys

Galima gauti reikšmes mūsų objektui iš kitų klasių savybių:

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

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

Pririškime šį objektą prie mūsų bloko:

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

Praktinės užduotys

Задание 1

Sukurkite dvi CSS klases. Tegul viena iš jų apibrėžia bloko foną, o antroji - šrifto dydį.

Задание 2

Padarykite du mygtukus. Tegul paspaudimas ant pirmojo mygtuko įjungia/išjungia pirmąją klasę, o paspaudimas ant antrojo - įjungia/išjungia antrąją klasę.