Μαζική δέσμευση κλάσεων 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

Φτιάξτε δύο κουμπιά. Ας πατώντας στο πρώτο κουμπί να εναλλάσσει την πρώτη κλάση, και πατώντας στο δεύτερο - να εναλλάσσει τη δεύτερη κλάση.