我正在尝试读取http响应的.length属性,但是我变得不确定。这是我从后端得到的响应
{
"departments": [
{
"id": 1,
"department_name": "Account",
"department_code": "001"
},
{
"id": 2,
"department_name": "Sales",
"department_code": "002"
}
]
}
我的http请求;
getDepartments(): Observable<Department[]> {
const url = `${this.BASE_URL}/tenant/departments`;
return this.http.get<Department[]>(url, requestOptions);
}
这是我的部门界面
export interface Department {
id: number;
department_name: string;
department_code : string;
}
然后在我的组件中;
getDepartments(){
this.adminService.getDepartments().subscribe(
(response) => {
this.departments = response;
}
)
}
我已经尝试过这样映射响应;
const url = `${this.BASE_URL}/tenant/departments`;
return this.http.get<Department[]>(url, requestOptions).pipe(
map(response => response.departments)
);
但是然后我得到的部门类型不存在财产部门[]
我将非常感谢。
您需要这样做:
const url = `${this.BASE_URL}/tenant/departments`;
return this.http.get<{departments:Department[]}>(url, requestOptions).pipe(
map(response => response.departments)
);
因此您的回复类型实际上与您的回复相符