2
votes

Matériau angulaire - Comment changer la couleur du bouton au moment de l'exécution

Je crée un menu de barre latérale en utilisant un matériau angulaire. Je n'ai pas trouvé de moyen de changer la couleur du bouton en fonction de certaines propriétés du composant.

J'ai déjà lu la documentation: https://material.angular.io/components/button/overview

Et à propos des thèmes, il dit seulement:

Les boutons peuvent être colorée en fonction du thème actuel en utilisant la propriété color pour définir la couleur d'arrière-plan sur primaire, accentuation ou avertissement.

Voici mon code:

<button
       *ngFor="let link of links; let i = index"
       mat-raised-button
       (click)="selectedIndex = i"
       [color]="selectedIndex === i ? primary : warm"
       [routerLink]="link.routerLink">
</button>


0 commentaires

4 Réponses :


3
votes

Vous devez entourer le nom du thème de couleur de guillemets pour le passer sous forme de chaîne:

[color]="selectedIndex === i ? 'primary' : 'warn'"

Voir this stackblitz pour une démo.


0 commentaires

3
votes

Essayez ceci, changez primaire en "principal" et avertissez en "avertir", devrait avoir l'effet que vous souhaitez.


0 commentaires

6
votes

Très possible, vous devrez passer des littéraux de chaîne à votre liaison de données [coul.

https://stackblitz.com/ edit / angular-npzkiu? embed = 1 & file = app / button-overview-example.html


0 commentaires

2
votes

Cela peut résoudre votre problème, en utilisant des guillemets simples plutôt que sans:

[color] = "selectedIndex === i? 'primary': 'warn'"


0 commentaires