J'ai besoin que mon tableau répertorie les sexes des héros sous la forme Je ne sais pas comment lier les données Mock-heroes: "M" ou "F" dans le tableau en fonction du sexe des héros, qu'il soit masculin ou femme. Donc, s'il s'agit d'un mâle, il n'apparaîtra que par "M". De plus, j'ai besoin que les polices soient d'une couleur spécifique en fonction des âges. Par exemple, si 0 color # 000000 (noir) . si 20 hero.gender au tableau pour afficher M ou F & et liez les couleurs de police à l'âge. export const HEROES: Hero[] = [
{ id: 11, name: 'Mr.Incredible', gender: 'Male', superpowers: 'Super Strength', age: 10 },
{ id: 12, name: 'Missappear', gender: 'Female', superpowers: 'Invisibility', age: 29 },
{ id: 13, name: 'Jetstream', gender: 'Female', superpowers: 'Flying', age: 32 },
{ id: 14, name: 'Nightcrawler', gender: 'Male', superpowers: 'Shapeshifting', age: 17 },
{ id: 15, name: 'Flash', gender: 'Female', superpowers: 'Super Speed', age: 23 },
{ id: 16, name: 'Professor X', gender: 'Male', superpowers: 'Telepathy', age: 38 },
{ id: 17, name: 'Jean Grey', gender: 'Female', superpowers: 'Telekinesis', age: 35 },
{ id: 18, name: 'Wolverine', gender: 'Male', superpowers: 'Regeneration', age: 24 },
];
<table>
<tr>
<th>Hero ID</th>
<th>Hero Name</th>
<th>Gender</th>
<th>Age</th>
<th>Superpower</th>
<th>Delete</th>
</tr>
<!-- <tr *ngFor="let hero of heroes">
<a routerLink="/detail/{{hero.id}}"> -->
<tr *ngFor="let hero of heroes" [ngStyle]="{'background-color':getColor(hero.superpowers)}">
<a routerLink="/detail/{{hero.id}}">
<td><span class="badge">{{hero.id}}</span></td>
<td><span class="badge">{{hero.name}}</span></td>
<td><span class="badge">{{hero.gender}}</span></td>
<td><span class="badge">{{hero.age}}</span></td>
<td><span class="badge">{{hero.superpowers}}</span></td>
</a>
<td><button class="delete" title="delete hero"
(click)="delete(hero)">X</button></td>
</tr>
</table>
3 Réponses :
Ajoutez simplement un autre Vous venez de créer les classes css, puis faites ce dont vous avez besoin avec la variante féminine. Ci-dessus est juste un exemple que j'ai écrit ici et qui pourrait ne pas être compilé avec succès. dans le tableau avec quelque chose comme ce qui suit: <td><span class="badge" *ngIf="hero.gender === 'Male'">
<span [ngClass]="{'black-text' : hero.age <= 20}">M</span>
<span [ngClass]="{'other-text' : hero.age > 20 && hero.age <= 50}">M</span>
</span></td>
Pour changer la couleur en fonction de la condition , vous devez utiliser la directive ngStyle comme ci-dessous
component.html
getColorByAge(age) {
switch (true) {
case age > 0 && age <= 20:
return '#000000';
case age > 20 && age <= 50:
return '#85929E';
}
}
component.ts
<tr *ngFor="let hero of heroes" [ngStyle]="{'background-color':getColor(hero.superpowers)}">
<td><span class="badge">{{hero.id}}</span></td>
<td><span class="badge">{{hero.name}}</span></td>
<td><span class="badge">{{hero.gender == 'Male' ? 'M': 'F'}}</span></td>
<td [ngStyle]="{ 'color' : getColorByAge(hero.age) }"> <span class="badge" >{{hero.age}}</span></td>
<td><span class="badge">{{hero.superpowers}}</span></td>
<td><button class="delete" title="delete hero">X</button></td>
</tr>
Utiliser pour changer la couleur
[style.color] = "hero.age
Utilisez pour afficher uniquement M/F :
{{hero.gender.charAt (0)}} Voici le code
<td><span class="badge" [style.color]="hero.age <= 20 ? '#000000': hero.age <= 50 ? '#85929E' : 'green'">{{hero.gender.charAt(0)}}</span></td>
J'ai ajouté une solution sur stackblitz, veuillez consulter stackblitz.com/edit/…