angular - 在 angular6 中更新一个 formControl 应该更新 Other ,反之亦然
问题描述
我的 UI 中有 2 个选择菜单(具有相同的选项)。如果我在第一个选择菜单中选择菜单选项,那么另一个选择菜单应该反映相同的选项,反之亦然。
目前我在第一个 formControl 上使用 valueChanges 方法来更新第二个。如果我对第二个表单控件也使用相同的控件,那么我将收到“超出最大调用堆栈大小”错误。
因此,请建议当其中任何一个的值发生变化时如何更新这两个选择菜单。
代码如下所示。
使用的表单控件有:
// Form group for Simple Search
this.simpleSearchForm = this.formBuilder.group({
orderType: [''],
searchBy: [''],
searchCriteria: ['']
});
// Form Group for Advanced Search
this.advancedSearchForm = this.formBuilder.group({
orderType: [''],
searchBydateField: [''],
dateRangeFrom: [''],
dateRangeTo: [''],
filterResultsBy: ['']
});
用于更改高级表单控件。
//Change in simple form should reflect the change in advanced form
this.simpleSearchForm.get('orderType').valueChanges.subscribe(data => {
this.advancedSearchForm.get('orderType').setValue(this.simpleSearchForm.get('orderType').value);
});
解决方案
您可以使用角度change
事件来更新值。
in component.ts
changeSecondFormValue(){
this.advancedSearchForm.controls['secondFormValue'].seValue(this.simpleSearchForm.get('firstFormValue').value)
}
在 component.html 中
//select 1 form Form 1
<select (change)="changeSecondFormValue()" formControlName="firstFormValue">
<option value="1">option 1 </option>
<option value="2">option 1 </option>
</select>
//select 1 form Form 1
<select formControlName="secondvalue">
<option value="1">option 1 </option>
<option value="2">option 1 </option>
</select>
推荐阅读
- javascript - PeerJS - connection.on('open')未执行
- javascript - Firestore 如何避免显示重复的字段值(JavaScript)
- ansible - Ansible 任务在服务器上远程本地运行
- android-studio - 意图 putExtra 值的 Android Kotlin 测试
- autodesk-forge - 如何在 Inventor Design Automation 中使用自定义字体
- swift - Swift - 如何垂直转换(翻转)自定义 UITableViewRowAction
- java - 从 Spring Boot 应用程序启动 jar 应用程序
- java - 为什么我的程序会更改布尔值?
- go - GitHub App 身份验证问题:无法刷新安装 ID 令牌
- reactjs - LEAFLET GEOMAN - 拾取这个多边形画中的坐标