web-dev-qa-db-fra.com

Angular Mat Sélectionnez Sélection multiplechange pour trouver quelle option a été modifiée

J'ai un <mat select> avec l’option multiple (multi-sélection). Lorsque l'événement selectionChange est déclenché, je dois savoir quelle option a été cochée ou décochée. Cependant, il ne renvoie que la nouvelle liste actuelle des options sélectionnées.

Par exemple, j'ai une liste:

<mat-select (selectionChange)="change($event)" multiple placeholder="Select">
  <mat-option value="1">one</mat-option>
  <mat-option value="2">two</mat-option>
  <mat-option value="3">three</mat-option>
  <mat-option value="4">four</mat-option>
</mat-select>

Si les options one, three et four sont cochées, puis l'option non contrôlée par l'utilisateur four, dans le gestionnaire d'événements, il me faut savoir quelle option a déclenché l'événement. (c.-à-d. l'option four) et son nouvel état. Je ne vois actuellement pas de moyen d'accéder à cette information dans l'événement selectionChange.

https://stackblitz.com/edit/angular-1e9gsd?file=app/select-overview-example.ts

J'ai essayé de mettre le gestionnaire d'événements (selectionChange)="change($event)" sur le <mat-option> mais cela ne semble pas être pris en charge.

13
Curtis

J'avais besoin d'utiliser onSelectionChange sur le <mat-option>, qui est différent du selectionChange que vous pouvez utiliser sur le <mat-select>

Ce serait bien si cela se trouvait dans la documentation de mat-select.

Ici ça marche https://stackblitz.com/edit/angular-1e9gsd-34hrwg?file=app/select-overview-example.html

25
Curtis