如何使用 HTTPClient 使用从 JSON 文件检索到的 ID 值填充 Select 控件
How to populate Select control with ID value retrieved from JSON file using HTTPClient
在我的 Angular 应用程序中,我使用 HTTP 客户端从 JSON 文件检索的值填充下面的 select 控件。
<label for="manager">Manager:</label>
<select class="form-control" id="manager">
<option value="" disabled>Choose manager</option>
<option *ngFor="let manager of managers" [value]="manager.id">{{manager.fullName}}</option>
</select>
这里是 JSON
:
"managers": [
{
"id": 1,
"fullName": "Phil",
"contactPreference": "email",
"email": "phil@gmail.com",
"phone": "0865963625"
}
]
这里是我创建表单的地方:
this.jobForm = this.fb.group({
title: ['', Validators.required],
description: ['', Validators.required],
managerId: [''],
});
这是我拥有的一个job
对象:
job: IJob = {
id: null,
title: '',
description: '',
employeeId: null,
managerId: null
};
我想用 select 选项
中的 manager.Id
填充此 job
对象的 managerId
这是我的尝试,但没有用:
this.job.managerId = this.jobForm.value.manager;
有人可以告诉我如何从 select 控件访问 ID 并将其添加到我的 job
对象吗?
我也打印了 console.log('MANAGER VALUE: ' + this.jobForm.value.manager);
但这是打印的内容:
MANAGER VALUE: undefined
好的,所以我想出了我需要改变的地方。
我在 select 控件中添加了 fomControlName
。
HTML:
<select class="form-control" id="managerId" formControlName="managerId">
<option value="" disabled>Choose manager</option>
<option *ngFor="let manager of managers" [value]="manager.id">{{manager.fullName}}</option>
</select>
上面的 formControlName 需要匹配下面的 FormBuilder 中的 managerId
。
打字稿:
this.jobForm = this.fb.group({
title: ['', Validators.required],
description: ['', Validators.required],
managerId: [''],
});
this.job.managerId = this.jobForm.value.managerId;
在我的 Angular 应用程序中,我使用 HTTP 客户端从 JSON 文件检索的值填充下面的 select 控件。
<label for="manager">Manager:</label>
<select class="form-control" id="manager">
<option value="" disabled>Choose manager</option>
<option *ngFor="let manager of managers" [value]="manager.id">{{manager.fullName}}</option>
</select>
这里是 JSON
:
"managers": [
{
"id": 1,
"fullName": "Phil",
"contactPreference": "email",
"email": "phil@gmail.com",
"phone": "0865963625"
}
]
这里是我创建表单的地方:
this.jobForm = this.fb.group({
title: ['', Validators.required],
description: ['', Validators.required],
managerId: [''],
});
这是我拥有的一个job
对象:
job: IJob = {
id: null,
title: '',
description: '',
employeeId: null,
managerId: null
};
我想用 select 选项
中的manager.Id
填充此 job
对象的 managerId
这是我的尝试,但没有用:
this.job.managerId = this.jobForm.value.manager;
有人可以告诉我如何从 select 控件访问 ID 并将其添加到我的 job
对象吗?
我也打印了 console.log('MANAGER VALUE: ' + this.jobForm.value.manager);
但这是打印的内容:
MANAGER VALUE: undefined
好的,所以我想出了我需要改变的地方。
我在 select 控件中添加了 fomControlName
。
HTML:
<select class="form-control" id="managerId" formControlName="managerId">
<option value="" disabled>Choose manager</option>
<option *ngFor="let manager of managers" [value]="manager.id">{{manager.fullName}}</option>
</select>
上面的 formControlName 需要匹配下面的 FormBuilder 中的 managerId
。
打字稿:
this.jobForm = this.fb.group({
title: ['', Validators.required],
description: ['', Validators.required],
managerId: [''],
});
this.job.managerId = this.jobForm.value.managerId;