Angular Material 多个 Select 对象选项

Angular Material Multiple Select Options with Object

当前设置:

预期行为:

当前行为:

补充说明:

代码示例:

<mat-select placeholder="Multiclassement" [(ngModel)]="classe.multiclassement" multiple>
  <mat-option *ngFor="let c of classes | async" [value]="c">{{c.nom}}</mat-option>
</mat-select>

由于我们处理的是对象,您的 multiclassesment 数组中的对象没有引用您的 classes 数组中的对象,因此 Angular 无法进行绑定。我们可以通过使用 compareWith (docs) 来解决这个问题,如下所示:

<mat-select [compareWith]="compareWithFn" placeholder="Multiclassement" 
            [(ngModel)]="classe.multiclassement" multiple>

和 TS:

compareWithFn(item1, item2) {
  return item1 && item2 ? item1.nom === item2.nom : item1 === item2;
}

DEMO