删除带有Mat选择多个angular5的ngModel时取消选中

时间:2018-09-24 08:53:28

标签: angular angular-material

我的代码如下:

<mat-form-field>
   <mat-select [formControl]="employeename" [(ngModel)]="selectedName" multiple (selectionChange)="selectedchange()" >
        <mat-select-trigger>
                    {{employeename.value ? employeename.value[0] : ''}}
                    <span *ngIf="employeename.value?.length > 1" >
                      (+{{employeename.value.length - 1}} {{employeename.value?.length === 2 ? 'other' : 'others'}})
                    </span>
        </mat-select-trigger>
        <mat-option *ngFor="let employee of employeeNames " [value]="employee" data-ng-selected="true">{{employee}}</mat-option>
    </mat-select>
 </mat-form-field>

我已经删除了selectedName: this.selectedName.splice(index, 1);的一个元素。

但是,在mat-select多个保管箱中,已删除的元素是uncheckbox。

你能帮我吗?

1 个答案:

答案 0 :(得分:0)

那是因为Angular的更改检测通过引用进行比较。当您拼接数组时,select无法知道任何更改。您可以通过重新分配数组或通过FormControl设置值来解决它,例如:

this.selectedName = this.selectedName.splice(index, 1);