Angular中使用FormControl时如何让Mat-Select无初始选中值
解决Angular Mat-Select默认选中第一个选项的问题
你的问题出在FormControl的初始值设置上——你把整个objects数组传给了projectid对应的FormControl,Mat-Select会自动匹配数组的第一个元素作为选中值,这就是默认选中第一项的原因。
修正步骤:
- 修改FormControl初始值:将初始值从
this.objects改为null或undefined,这样组件就不会默认选中任何选项:
this.experimentForm = this.fb.group({ projectid: new FormControl(null, [ Validators.required, ]), })
或者用FormBuilder更简洁的写法:
this.experimentForm = this.fb.group({ projectid: [null, Validators.required] })
可选:移除null选项:如果你不需要显示那个标注为"null"的选项,直接删掉
<mat-option [value]="null">null</mat-option>即可。设置初始值为null后,Mat-Select会保持未选中状态,显示mat-label里的"test"文本。验证逻辑调整(可选):因为你加了
Validators.required,如果用户没选择任何选项,表单会处于无效状态。如果允许用户选择"null"作为合法选项,需要移除Validators.required,或者自定义验证规则允许null值。
内容的提问来源于stack exchange,提问作者lasJac
相关产品推荐
相关产品推荐

