我正在使用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'。 –