typescript - 设置 mat-option 值反应形式
问题描述
我正在使用反应式表单,我的表单字段如下所示。
<mat-form-field>
<mat-select placeholder="Select District" formControlName="district" required>
<mat-option
*ngFor="let district of districts"
[value]="district.districtID" >
{{ district.districtID}} - {{ district.districtName}}
</mat-option>
</mat-select>
</mat-form-field>
我正在激活路由中使用 patchValue 更新区字段值
this.activatedRoute.queryParams.subscribe(
params => {
this.myForm.controls['district'].setValue(params['district']);
})
问题是它正在将值设置为区域表单控件,但 mat-select 仍然显示占位符。
解决方案
您正在将districtID
属性绑定为模板中mat-select
/的值mat-option
,但您正在尝试将完整的区对象与setValue
.
更改此行
this.myForm.controls['district'].setValue(params['district']);
至
this.myForm.controls['district'].setValue(params['district'].districtID);
看看 这个 堆栈闪电战。我已经评论了错误的实现,所以你可以很容易地在两者之间切换,如果你绑定
distrcitID
.
推荐阅读
- ifc - 从 IfcWall 递归变换坐标
- javascript - 如何在 esri 中创建具有其他不同颜色的短划线?我们可以使用 SimpleLineSymbol 实现这一点吗?
- angular - 表单在 Angular5 中未正确显示的验证错误
- java - 导出超过 256 列和 primefaces 的 excel
- arrays - 如何使用 IBM Cplex OPL 脚本定义和初始化 3 维数组
- php - Laravel / Nginx 动态域路由
- javascript - 如何绑定或传递控制器范围值作为 angularjs 自定义指令模板中的范围?
- php - Laravel 在刀片中计算
- powershell - 一个作业如何在 Powershell 中创建其他作业
- mysql - SQL CONCAT 转 JSON