我从数据库mySql中获得了项目列表,还单击了“编辑”按钮。 当我单击“编辑”(按ID)时,我想查看数据填充的所有字段。 但是我只有在控制台中:undefined 如果我通过邮递员测试过我的api,那么效果很好。
这是我获取清单的方式。
{
const id = this.actRoute.snapshot.paramMap.get('id');
this.studentApi.GetStudent(id).subscribe((res: any) => {
console.log(res.data);
this.subjectArray = res.data;
console.log(this.subjectArray);
this.studentForm = this.fb.group({
id: [res.id, [Validators.required]],
domain_id: [res.domain_id, [Validators.required]],
source: [res.source, [Validators.required]],
destination: [res.destination]
});
});
}
有我的api.service.ts
GetStudent(id): Observable<any> {
const API_URL = `${this.endpoint}/read-student/${id}`;
return this.http.get(API_URL, { headers: this.headers })
.pipe(
map((res: Response) => {
return res || {};
}),
catchError(this.errorMgmt)
);
}
还有我的路线
studentRoute.get('/read-student/:id', (request, response) => {
const id = request.params.id;
con.query('SELECT * FROM students WHERE id = ?', id, (error, result) => {
if (error) throw error;
response.send(result);
});
});
有来自“邮递员”的回复
[
{
"id": 5,
"domain_id": 2,
"source": "tester0700@test.pl",
"destination": "testw@test.pl"
}
]
答案 0 :(得分:0)
响应似乎是一个包含对象的数组。
在这种情况下,无需使用res.data
,因为这意味着返回的可观察值,res
具有名为data
的属性,并且您正在尝试访问该属性中的值。您可以简单地将res
分配给subjectArray
属性。我很确定会定义res
。
this.studentApi.GetStudent(id).subscribe((res: any) => {
console.log(res);
this.subjectArray = res;
// handle the rest here.
});