Angular Material 7 Multi Select-设置所选值

时间:2019-07-19 07:30:32

标签: angular angular-material angular-ui angular-material2

我正尝试为多选下拉菜单设置选定的值,如下所示

//循环以选中多个复选框并根据情况进行设置

document.getElementsByTagName('mat-pseudo-checkbox')[index].classList.add('mat-pseudo-checkbox-checked');
document.getElementsByTagName('mat-pseudo-checkbox')[index].setAttribute("ng-reflect-state","checked");

这只是表面上的变化,因为当我尝试通过(selectionChange)= filter($ event)检索所有选中的复选框时

<mat-select multiple  (selectionChange)="filter($event)" formControlName="dropdown">
   <mat-option *ngFor="let info of infos" [value]="info">
      {{info}}
    </mat-option>
 </mat-select>

该事件似乎未采用我们之前尝试设置的值,请​​让我知道该事件如何在选择垫子的情况下选择选定的值。

P.S:目标是在角度标签之间切换时保留多个选择框

3 个答案:

答案 0 :(得分:1)

您可以使用FormControl.setValue()功能设置选定的值

example.component.html

<mat-select [formControl]="toppings" (selectionChange)="filter($event)" multiple [(value)]="selected" >
    <mat-option *ngFor="let topping of toppingList" [value]="topping">{{topping}}</mat-option>
</mat-select>

example.component.ts

  toppings = new FormControl();
  toppingList: string[] = ['Extra cheese', 'Mushroom', 'Onion', 'Pepperoni', 'Sausage', 'Tomato'];

  ngOnInit(){
    this.toppings.setValue(['Mushroom', 'Onion']);
  }


  filter(data){
    console.log(data.value);
  }

请检查example

答案 1 :(得分:0)

  

这里的链接很好example

答案 2 :(得分:0)

请参阅此stackblitz示例。

您可以使用formControl属性设置并获取价值。