Angular 响应式表单无法获取 formControlName 以在 ngFor 模板循环上设置值
Angular Reactive Forms unable to get formControlName to set value on an ngFor template loop
我正在使用 Angular 响应式表单,我正在尝试获取表单控件值以将其设置为下拉列表中的默认值。如果我不在我的模板代码中使用 *ngFor 循环,我就能让它工作。但是,我需要使用它,因为标签中会有很多选项。
<select formControlName="staffName">
<option>Bob Jason</option>
<option>Sally Reel</option>
<option>Jack Jones</option>
<option>George Smith</option>
<option>Harry Lake</option>
</select>
但是,如果我使用下面的代码,它不起作用
<select formControlName="staffName">
<option *ngFor="let StaffMemberModel of StaffMemberModels">
{{StaffMemberModel.firstName}} {{StaffMemberModel.lastName}}
</option>
</select>
StaffMemberModel 是一个包含 id、firstName 和 lastName 的数组,如下所示。
输出如下。但是,它只显示下拉列表中的第一个选项,而它应该显示在上一页中选择的工作人员。
您可以通过传递 [value]="StaffMemberModel.id"
标志来实现。
可以是名字,姓氏,ID,任何你想要的。
<form [formGroup]="form">
<select formControlName="staffName">
<option *ngFor="let StaffMemberModel of StaffMemberModels"
[value]="StaffMemberModel.id" >
{{ StaffMemberModel.firstName }} {{ StaffMemberModel.lastName }}</option>
</select>
</form>
如果您想实际查看它:
https://stackblitz.com/edit/angular-w8bjyl
我正在使用 Angular 响应式表单,我正在尝试获取表单控件值以将其设置为下拉列表中的默认值。如果我不在我的模板代码中使用 *ngFor 循环,我就能让它工作。但是,我需要使用它,因为标签中会有很多选项。
<select formControlName="staffName">
<option>Bob Jason</option>
<option>Sally Reel</option>
<option>Jack Jones</option>
<option>George Smith</option>
<option>Harry Lake</option>
</select>
但是,如果我使用下面的代码,它不起作用
<select formControlName="staffName">
<option *ngFor="let StaffMemberModel of StaffMemberModels">
{{StaffMemberModel.firstName}} {{StaffMemberModel.lastName}}
</option>
</select>
StaffMemberModel 是一个包含 id、firstName 和 lastName 的数组,如下所示。
输出如下。但是,它只显示下拉列表中的第一个选项,而它应该显示在上一页中选择的工作人员。
您可以通过传递 [value]="StaffMemberModel.id"
标志来实现。
可以是名字,姓氏,ID,任何你想要的。
<form [formGroup]="form">
<select formControlName="staffName">
<option *ngFor="let StaffMemberModel of StaffMemberModels"
[value]="StaffMemberModel.id" >
{{ StaffMemberModel.firstName }} {{ StaffMemberModel.lastName }}</option>
</select>
</form>
如果您想实际查看它: https://stackblitz.com/edit/angular-w8bjyl