Nic*_*leZ 3 angular angular-reactive-forms
我的组件中有一个反应式表单。当组件初始化时,我想将值设置为组件中的选择字段,而不是作为选项。订阅该值后,可以从服务器获取可观察到的值,我想在其中显示该值选择字段作为默认值
我试过
this.formName.get('controlName').setValue('valueFromServer')
Run Code Online (Sandbox Code Playgroud)
和
this.formName.get('controlName').patchValue('valueFromServer')
Run Code Online (Sandbox Code Playgroud)
还有几个 stackoverflow 解决方案,但这些对我不起作用。这是我的 stackblitz 示例。有人可以告诉我这里出了什么问题吗
据我所知,您正在设置以正确方式形成控制的值。
然而,正如 @Adrita 指出的,如果value 属性dropdown包含该值,则将选择该值,否则不会发生选择。Options
看看这个StackBlitz。
在模板中:
this.tourPageForm.get('accomadation').setValue('valueFromServer'),
Run Code Online (Sandbox Code Playgroud)
在视图中:
<select style="width:100px" formControlName="accomadation" class="form-control border">
<option value="valueFromServer">1</option>
</select>
Run Code Online (Sandbox Code Playgroud)
编辑 :
实际上setValue和patchValue似乎在这里工作。我们用下面的方法检查一下..
this.tourPageForm.get('accomadation').setValue('valueFromServer');
this.tourPageForm.get('mealType').setValue('Value recive from Server');
console.log(this.tourPageForm.value)
Run Code Online (Sandbox Code Playgroud)
当我们尝试控制台时tourPageForm,将能够观察到以下值。
accomadation: "valueFromServer"
mealType: "Value recive from Server"
transportation: ""
Run Code Online (Sandbox Code Playgroud)
这意味着setValue和patchValue工作正常,但表单dropdown无法选择给定值,因为它们不是当前下拉列表的一部分Options。
| 归档时间: |
|
| 查看次数: |
21693 次 |
| 最近记录: |