Angular 6 Material - 在mat中更改分隔符 - 选择多个选项

时间:2018-06-04 03:23:20

标签: angular angular-material

我的表单中有一个mat-select,有多个选项(You can see a demo in here)。

<mat-form-field style="width: 100%">
  <mat-select placeholder="Toppings" [formControl]="toppings" multiple>
    <mat-option *ngFor="let topping of toppingList" [value]="topping">{{topping}}</mat-option>
  </mat-select>
</mat-form-field>

它在输入字段中显示以逗号分隔的所选选项列表。有没有办法改变分隔符?

1 个答案:

答案 0 :(得分:3)

可以在https://github.com/angular/material2/blob/9f6aa843cd2f68562d3f5290688bbe5bab957bcf/src/lib/select/select.ts#L642

找到负责该分隔符的代码
// TODO(crisbeto): delimiter should be configurable for proper localization.
return selectedOptions.join(', ');

正如您所见,它尚未得到支持。的 还有另一种方法可以实现它。

只需添加自定义mat-select-trigger,如下所示:

<mat-select [formControl]="toppings" multiple ...>
    ...
    <mat-select-trigger>
        <span> {{toppings.value ? toppings.value.join('; ') : ''}}</span>
    </mat-select-trigger>
</mat-select>

<强> Forked Demo

这样您就可以选择任何分隔符,例如:

toppings.value.join('&#9832;')

enter image description here