Voici mon code:
<mat-grid-list cols="4" rowHeight="100px"> <mat-grid-tile colspan="2" rowspan="2"> 1 </mat-grid-tile> <mat-grid-tile colspan="2" rowspan="2"> 2 </mat-grid-tile> <mat-grid-tile colspan="1" rowspan="1"> 3 </mat-grid-tile> <mat-grid-tile colspan="1" rowspan="1"> 4 </mat-grid-tile> <mat-grid-tile colspan="2" rowspan="1"> 5 </mat-grid-tile> </mat-grid-list>
Je souhaite appliquer manuellement une couleur d'arrière-plan à ces carreaux.
Je sais que je peux utiliser cette méthode: _setStyle (property: string, value: any): void;
Mais je n'ai aucune idée de comment dans mon cas, puisque je ne l'ai pas fait ' t initialiser tout objet MatGridTile dans mon composant. Je ne veux pas utiliser une grille remplie dynamiquement.
https://stackblitz.com/edit/angular-adjmya?file=app/grid-list-dynamic-example.html
3 Réponses :
Vous pouvez simplement utiliser style.backgroundColor
:
<mat-grid-tile colspan="2" rowspan="2" [style.backgroundColor]="'red'">
Merci mais ça ne marche pas, j'ai déjà essayé ça. De plus, mon IDE me dit que je ne peux pas utiliser cette propriété ici de toute façon, donc je suppose que c'est vrai ...
dans le fichier css du composant de l'application: mat-grid-tile {background-color: yellow; }
merci mais comment puis-je sélectionner une tuile spécifique à colorier? en ce moment, chaque tuile devient jaune lol
@DevMoutarde apparemment, il doit vraiment être lié à l'aide de crochets. Vérifiez ma mise à jour. Vérifiez également le stackblitz que j'ai joint pour un exemple de travail
Essayez "'red'"
dans [style.background
[style.background]="tile.color"
La raison pour laquelle il a fallu des guillemets simples '
est que, selon le demo , on peut voir qu'il attend
<mat-grid-list cols="4" rowHeight="100px"> <mat-grid-tile colspan="2" rowspan="2" [style.background]="'red'"> 1 </mat-grid-tile> <mat-grid-tile colspan="2" rowspan="2"> 2 </mat-grid-tile> <mat-grid-tile colspan="1" rowspan="1"> 3 </mat-grid-tile> <mat-grid-tile colspan="1" rowspan="1"> 4 </mat-grid-tile> <mat-grid-tile colspan="2" rowspan="1"> 5 </mat-grid-tile> </mat-grid-list>
ce qui montre qu'il prend angular code> variable et interpolez-la. En fournissant
'
, vous indiquez au composant matériel qu'il s'agit d'une chaîne et non d'une variable angulaire définie dans le composant
. Sinon, avec style.backgroundColor = "red"
, il recherche une variable nommée red
dans le composant.
Wow, cela fonctionne réellement !! Je déteste parfois la doc angulaire ... comment l'avez-vous su? Merci quand même :)
eh bien, je ne trouve toujours rien dans la documentation matérielle (ni dans le site Web angular ni dans la documentation de mon IDE, comme dans le fichier grid-tile.d.ts), pourriez-vous m'en donner une source? pour mon information: D
@DevMoutarde a ajouté une explication dans ma réponse fournie
Cela fonctionnera
<mat-grid-tile [colspan]="3" [rowspan]="1" style="background-color: lightblue">
Essayez d'utiliser
:: ng-deep
. pouvez-vous fournir un code de démonstration afin que nous puissions vous fournir une solution@ShashankVivek c'est trop complexe pour fournir une démo angulaire (ou je n'ai jamais trouvé de moyen facile de le faire) désolé ....
Pouvez-vous modifier stackblitz.com/angular/… a> et nous montrer?
Oh mec j'ai oublié ça (et je l'utilise lol), bien sûr que je peux
Comment puis-je sauver cette fichue chose? @ShashankVivek
Cliquez d'abord sur "fourchette" puis enregistrez: D
Oui merci, je l'ai ajouté à ma question :)