【发布时间】:2019-08-19 18:50:59
【问题描述】:
在 Angular 中访问 Json 中的 _embedded 属性时遇到问题。甚至可能吗? 使用 Spring-Data-Jpa 创建的 Json 响应如下所示:
{
"_embedded": {
"reviews": [
{
"author": "Anonymous",
"content": "This movie sucks",
"upvotes": 0,
"downvotes": 0,
"_links": {
"self": {
"href": "http://localhost:8080/api/reviews/1"
},
"review": {
"href": "http://localhost:8080/api/reviews/1"
},
"film": {
"href": "http://localhost:8080/api/reviews/1/film"
}
}
}, ...
]
},
"_links": {
"self": {
"href": "http://localhost:8080/api/reviews{?page,size,sort}",
"templated": true
},
"profile": {
"href": "http://localhost:8080/api/profile/reviews"
}
},
"page": {
"size": 20,
"totalElements": 6,
"totalPages": 1,
"number": 0
}
} 从我的客户端应用程序中,我想处理嵌套在嵌入字段中的评论。但是我无法访问 _embedded 属性。我的 Angular 服务如下所示:
getEmbedded(): Observable<any> {
return this.http.get(ServerConfig.serverAddress + '/api/reviews');
}
使用服务的组件:
export class ReviewListComponent implements OnInit {
embeddedReviewResource: any;
constructor(private reviewService: ReviewService) { }
ngOnInit() {
this.reviewService.getEmbedded().subscribe(data => {
this.embeddedReviewResource = data;
});
}
在我看来,我尝试以多种方式引用 _embedded 属性:
*ngFor="let review of embeddedReviewResource.reviews
或
*ngFor="let review of embeddedReviewResource._embedded.reviews
或
*ngFor="let review of embeddedReviewResource.getEmbedded().reviews
或
*ngFor="let review of embeddedReviewResource._embeddedViews.reviews
这些似乎都不起作用。如何访问 Json 文件中的 _embedded 属性? 完整的源代码可在my GitHub 获得。
【问题讨论】:
标签: json angular typescript spring-data-jpa