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

გააკეთეთ ორი ღილაკი. პირველ ღილაკზე დაჭერა ჩართავდეს/გამორთავდეს პირველ კლასს, ხოლო მეორეზე დაჭერა - ჩართავდეს/გამორთავდეს მეორე კლასს.