<div class="form-inline"> <label class="text-color">Lokalizacja:</label> <select class="form-control dropdown" formControlName="localization"> <option value="Gdańsk" selected>Gdańsk</option> <option value="Rzeszów">Rzeszów</option> <option value="Wrocław">Wrocław</option> </select> </div>
不知道发生了什么,但在那种情况下没有选择的选项,我必须从列表中选择一些东西.当我从select中删除formControlName =“本地化时,然后在开始时选择Gdańsk.
Lokalization控件看起来像这个localizationCtrl = new FormControl(“”,Validators.required);
当我替换它时没有区别:
localizationCtrl = new FormControl(“”);
当然下一步是通过执行以下操作将该控件添加到offerForm:
... localization: this.localizationCtrl ...
但请不要试图在这里寻找问题因为我在offerForm中有类似7个其他验证器,所有这些都可以正常工作.
解决方法
在表单模型初始化期间分配默认值.
`localizationCtrl = new FormControl("Gdańsk",Validators.required);`
或者如果值来自服务器,请使用formControl的updateValue方法.
localizationCtrl.updateValue('Gdańsk');
见这里:https://scotch.io/tutorials/using-angular-2s-model-driven-forms-with-formgroup-and-formcontrol和
https://scotch.io/tutorials/how-to-deal-with-different-form-controls-in-angular-2