无法更改Angular2 Material MatChip选择状态

时间:2017-11-10 09:03:36

标签: angular angular-material

如何更改MatChip所选资产?我不想点击选择/取消选择芯片(也必须改变芯片颜色。) 我尝试了什么:

HTML

<mat-chip-list>
   <mat-chip *ngFor="let label of item.labels" 
             #lbl (click)="selectChip(lbl)">
      {{label}}
   </mat-chip>
</mat-chip-list>

TS

selectChip(item: MatChip) {
   item.selected ? item.deselect() : item.select();
}

点击它会抛出

  

错误TypeError:item.select不是函数

如何解决?

2 个答案:

答案 0 :(得分:0)

没有select()或deselect()方法,只有选定的getter和setter函数,所以你可以这样解决:

selectChip(item: MatChip) {
   item.selected = !item.selected;
}

希望这有帮助。

答案 1 :(得分:0)

如果您使用此html(请注意#lbl =“ matChip” ):

<mat-chip-list>
   <mat-chip *ngFor="let label of item.labels" 
             #lbl="matChip" (click)="selectChip(lbl)">
      {{label}}
   </mat-chip>
</mat-chip-list>

您的selectChip方法将收到MatChip,然后您可以执行以下操作:

selectChip(item: MatChip) {
   item.toggleSelected();
}