当select具有formControlName时,选项上的“selected”标签不起作用

时间:2016-07-28 08:07:57

标签: select angular

<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="localization时,会在开始时选择Gdańsk

Lokalization控件看起来像localizationCtrl = new FormControl("", Validators.required);

当我替换它时没有区别: localizationCtrl = new FormControl(""); 当然下一步是通过执行以下操作将该控件添加到provideForm:

...
localization: this.localizationCtrl
...

但是请不要试图在这里寻找问题,因为我在offerForm中有类似7个其他验证器,所有这些都可以正常工作。

2 个答案:

答案 0 :(得分:4)

在表单模型初始化期间分配默认值。

`localizationCtrl = new FormControl("Gdańsk", Validators.required);`

或者如果值来自服务器,请使用formControl&#39; updateValue方法。

localizationCtrl.updateValue('Gdańsk');

见这里:https://scotch.io/tutorials/using-angular-2s-model-driven-forms-with-formgroup-and-formcontrolhttps://scotch.io/tutorials/how-to-deal-with-different-form-controls-in-angular-2

答案 1 :(得分:3)

而不是selected使用

<select [ngModel]="selectedItem" class="form-control dropdown" formControlName="localization">

并将selectedItem设置为"Gdańsk"

或将localization的值设置为Gdańsk