角度垫选择多个选择更改查找哪个选项已更改

Cur*_*tis 17 multi-select angular-material angular

我有<mat select>多种选择.但是我需要知道选择何时发生变化,确切的变化是什么.

例如,如果我有一个列表:

<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>
Run Code Online (Sandbox Code Playgroud)

何时multiple触发它返回新选择的内容.但我需要知道正在改变的新价值是什么.我该如何访问?

例如,如果选择1和3然后用户选择4,我需要知道他们选择了4但我没有看到在事件信息中访问它的方法.

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

我尝试将selectionChange部件放在上面,one但它似乎不是受支持的事件触发器.

Cur*_*tis 31

我需要使用onSelectionChange<mat-option>,这是不同的比selectionChange,你可以在使用<mat-select>

如果那是在文档中,那将是很好的mat-select.

这是工作https://stackblitz.com/edit/angular-1e9gsd-34hrwg?file=app/select-overview-example.html


M.E*_*Çam 7

这是替代解决方案。在绑定 [(ngModel)] 之前触发 onSelectionChange 事件。就我而言,我需要绑定数据和最后选择的值。

<mat-select multiple [(ngModel)]="selectedValues" name="hebele" #select>
<mat-option #matOption *ngFor="let value of data.Values" (click)="yourMethod(matOption)" [value]="value">
        {{value.Text}}
</mat-option>
</mat-select>

 yourMethod(data: any) {
   let lastSelectedValue = data.value;
   const isChecked = data.selected;
 }
Run Code Online (Sandbox Code Playgroud)