我正在使用Angular 2 FormGroups来管理我的用户输入。如果我想更新旧数据中的选择字段,则选择字段不会按预期填充。只有在列表中最后一项应该被选中的情况下,它们才能工作。然后窗体适当地显示来自FormGroup的项目。Angular 2仅选择最后一个选项作为预先选择的FormGroup
下面是选择
<select formControlName="homeTeam">
<option>-- Choose a team --</option>
<option
*ngFor="let homeTeam of _teamsService.teamsForSchedule"
[ngValue]="homeTeam"
[selected]="homeTeam.$key===gameForm.value['homeTeam'].$key">
{{homeTeam.name}}
</option>
</select>
<label>Away Team</label>
<select formControlName="awayTeam">
<option >-- Choose a team --</option>
<option
*ngFor="let awayTeam of _teamsService.teamsForSchedule"
[ngValue]="awayTeam"
[selected]="awayTeam.$key===gameForm.value['awayTeam'].$key">
{{awayTeam.name}}
</option>
</select>
的[selected]
标签是什么宣称其项目将被默认选中的代码。正如我所说,只有在最后一项是默认选择的项目时才有效。
的截图下面是当我检查我看到的HTML。正如你所看到的,选中的是第二个选项标签,但由于某种原因,它不显示。
主队(正常显示)
<select formcontrolname="homeTeam" ng-reflect-name="homeTeam" class="ng-untouched ng-pristine ng-valid">
<option>-- Choose a team --</option>
<!--template bindings={
"ng-reflect-ng-for-of": "[object Object],[object Object],[object Object]"
}--><option value="1: Object" ng-reflect-ng-value="[object Object]">
Limozeen
</option><option value="2: Object" ng-reflect-ng-value="[object Object]">
Smash Bros
</option><option value="3: Object" ng-reflect-ng-value="[object Object]" ng-reflect-selected="true">
Thunder Thighs
</option>
</select>
客场
<select formcontrolname="awayTeam" ng-reflect-name="awayTeam" class="ng-pristine ng-valid ng-touched">
<option>-- Choose a team --</option>
<!--template bindings={
"ng-reflect-ng-for-of": "[object Object],[object Object],[object Object]"
}--><option value="1: Object" ng-reflect-ng-value="[object Object]">
Limozeen
</option><option value="2: Object" ng-reflect-ng-value="[object Object]" ng-reflect-selected="true">
Smash Bros
</option><option value="3: Object" ng-reflect-ng-value="[object Object]">
Thunder Thighs
</option>
</select>
我可以看到只有一个选择的代码 –
@RomanC我已更新的问题包括 – user3331142
'[value]'和'[ngValue]'不与'[selected]'一起使用,您需要使用'[ngModel] =“xxx”'并将项目预选项目分配给'xxx'。 –