目前,这有效并且在运行时没有给出我的错误,但我的文本编辑器给我一个错误,指出类型“CategoryInterface []”上不存在属性“类别”(在 response.categories 所在的行分配给变量)所以我不确定我做的事情是否正确。
public categories: CategoryInterface[];
.subscribe((response: CategoryInterface[]) => {
this.categories = response.categories;
console.log(this.categories);
});
我的后端返回这个:
{
"categories": [
{
"categoryId": 1,
"name": "Important",
"description": "This category is important.",
"order": 1,
"createdBy": null,
"createdAt": "2017-11-25 12:09:04",
"updatedBy": null,
"updatedAt": "2018-01-17 23:53:25",
"categoryBoards": [
{
"categoryBoardId": 1,
"categoryId": 1,
"name": "Announcements",
"description": null,
"order": 2,
"createdBy": null,
"createdAt": "2017-11-25 12:09:49",
"updatedBy": null,
"updatedAt": "2018-01-18 00:09:02"
},
{
"categoryBoardId": 23,
"categoryId": 1,
"name": "Rules",
"description": null,
"order": 1,
"createdBy": null,
"createdAt": "2018-01-18 00:08:57",
"updatedBy": null,
"updatedAt": "2018-01-19 00:05:51"
}
]
}
]
最佳答案
你正试图将你的 api 响应转换到一个 CategoryInterface 数组,但事实并非如此,你最好像这样使用你的订阅方法:
.subscribe((response: any) => {
this.categories = <CategoryInterface[]> response.categories;
console.log(this.categories);
});
这是需要转换为 CategoryInterface[] 的 API 响应类别
奖励:angular 样式指南注意到您需要声明类而不是接口(interface),并且您不必在类名后加上 Interface,因此只需将您的 CategoryInterface 命名为 Category。
关于javascript - 将 JSON 对象数组分配给 Angular/Typescript 接口(interface)数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48647106/