Доступ к _встроенному в Json Response - PullRequest
0 голосов
/ 29 марта 2019

Проблема с доступом к свойству _embedded в Json в Angular.Это вообще возможно?Ответ Json, созданный с помощью Spring-Data-Jpa, выглядит следующим образом:

{
"_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.Моя угловая служба выглядит так:

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

Ни один из тезисов, похоже, не сработает.Как я могу получить доступ к _embedded свойству в файле Json?Полный исходный код доступен на my GitHub .

1 Ответ

1 голос
/ 29 марта 2019
   reviews = []; 

   this.reviewService.getEmbedded().subscribe(data => {
      this.reviews = data._embedded.reviews;
    });

шаблон

   <div *ngFor="let review of reviews"> 
     {{ review.content }}
   </div>
...