json - 如何使用 HTTPClient 从 JSON 文件中检索的 ID 值填充 Select 控件
问题描述
在我的 Angular 应用程序中,我使用 HTTP 客户端从 JSON 文件中检索到的值填充下面的选择控件。
<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
};
我想从选择选项中填充managerId
这个job
对象manager.Id
这是我的尝试,但它不起作用:
this.job.managerId = this.jobForm.value.manager;
有人可以告诉我如何从选择控件访问 ID 并将其添加到我的job
对象中吗?
我也打印console.log('MANAGER VALUE: ' + this.jobForm.value.manager);
了,但这是打印的:
经理价值:未定义
解决方案
好的,所以我想出了我需要改变的地方。
我添加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 需要managerId
在下面的 FormBuilder 中匹配。
打字稿:
this.jobForm = this.fb.group({
title: ['', Validators.required],
description: ['', Validators.required],
managerId: [''],
});
this.job.managerId = this.jobForm.value.managerId;
推荐阅读
- c++ - 当 operator delete() 被删除时,operator new() 的行为会有所不同,具体取决于默认构造函数的存在
- c# - 在 Visual Studio 中调试时查看变量的内存地址?
- node.js - 无法从 mongoose 更新和删除数据
- angular - 返回 Observable
为布尔值 - java - 如何在 Spring Kafka 客户端中寻找偏移量?
- java - 如何从 python 使用 jdbc 连接到 oracle?
- angular - Angular-ChartJs:在图形 chartJs 的自定义工具提示中使用服务
- python - 如何让敌人改变方向 Python
- laravel - 在 Laravel 6 中选择不同的总分页错误
- microcontroller - 从 SRAM 启动