web-dev-qa-db-fra.com

Angular - Comment puis-je écrire une condition en interpolation?

J'ai une table qui est en cours de peuplement à travers le add client forme. Cela fonctionne bien et les modifications sont affichées. La chose est que j'ai une liste de sélection dans laquelle un utilisateur sélectionne la source spécifique, puis il est enregistré dans ngmodel. Voici le code.

Liste de sélection

 <mat-select [(ngModel)]="model.source" name="source" placeholder="Select Source ">
      <mat-option [value]="1 ">Upwork</mat-option>
      <mat-option [value]="2 ">Refer from Friend</mat-option>
      <mat-option [value]="3 ">Other</mat-option>
    </mat-select>

Maintenant, dans mon tableau, la valeur affichée est 1, 2 ou 3 en fonction de la sélection. Je veux écrire quelque chose, une condition d'interpolation comme celle-ci.

champ de table

<ng-container matColumnDef="source">
  <mat-header-cell *matHeaderCellDef> Source </mat-header-cell>
  <mat-cell *matCellDef="let element"> {{element.source ? if value is 1 : display (upwork), if value is 2 : display(refer from friend)}} </mat-cell>
</ng-container>

Quelque chose comme ça, je l’ai aimé dans angularjs je ne suis pas sûr de Angular

15
Usman Iqbal

Vous pouvez utiliser un ternaire imbriqué si

{{element.source == 1 ? 'upwork' : (element.source == 2 ? 'refer from friend' : '')}}

ou probablement mieux

export class MyComponent {
  sourceNames = {1: 'upwork', 2: 'refer from friend', 3: 'other' };
}
{{sourceNames[element.source]}}
39
Günter Zöchbauer