【发布时间】:2019-02-15 21:23:15
【问题描述】:
我想要一个多选下拉菜单,用户可以在其中单击“应用”按钮(位于下拉菜单中)以关闭菜单。使用 Angular Material 和 mat-select,有没有办法做到这一点?
我已经尝试向按钮添加关闭方法,但我得到了很多控制台错误,包括“control.registerOnDisabledChange 不是一个函数”,点击后,“control.markAsTouched 不是一个函数”
<mat-form-field>
<mat-select #toppings placeholder="Toppings" [formControl]="toppings" multiple>
<mat-option *ngFor="let topping of toppingsList" [value]="topping">{{topping}}</mat-option>
<button (click)="toppings.close()">Apply</button>
</mat-select>
</mat-form-field>
列表确实关闭了,但会出现控制台错误。
【问题讨论】:
-
除了危险的命名(输入 和 formControl 都有名称“toppings”),您需要正确设置您的反应式表单。问题不在于按钮,而在于
[formControl]="toppings"stackoverflow.com/questions/41474011/…。您可能希望使用 FormGroup 并在模板中访问formControlName。