wake-up-neo.com

Angular Mat Select Multiple selectionändern Sie, welche Option geändert wurde

Ich habe ein <mat select> mit der Option multiple (Mehrfachauswahl). Wenn das Ereignis selectionChange ausgelöst wird, muss ich wissen, welche Option aktiviert oder deaktiviert wurde. Es wird jedoch nur die neue aktuelle Liste der ausgewählten Optionen zurückgegeben.

Zum Beispiel habe ich eine 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>

Wenn die Optionen one, three und four aktiviert sind und der Benutzer die Option four deaktiviert hat, muss ich im Ereignishandler wissen, welche Option das Ereignis ausgelöst hat (dh Option four) und dessen neuer Status. Ich sehe derzeit keine Möglichkeit, im Ereignis selectionChange auf diese Informationen zuzugreifen.

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

Ich habe versucht, den Event-Handler (selectionChange)="change($event)" auf der <mat-option> aber es scheint nicht unterstützt zu werden.

13
Curtis

Ich musste onSelectionChange für <mat-option> Verwenden, was sich von dem selectionChange unterscheidet, das Sie für <mat-select> Verwenden können.

Es wäre schön, wenn das in der Dokumentation für mat-select Steht.

Hier funktioniert es https://stackblitz.com/edit/angular-1e9gsd-34hrwg?file=app/select-overview-example.html

25
Curtis