У меня есть приложение весенней загрузки с API-интерфейсом отдыха, используемым в качестве бэкэнда.Я хочу использовать angularjs в качестве внешнего интерфейса.
я получаю что-то вроде этого в ответ от API
{
"_embedded" : {
"genders" : [ {
"name" : "male",
"_links" : {
"self" : {
"href" : "http://localhost:8080/api/genders/1"
},
"gender" : {
"href" : "http://localhost:8080/api/genders/1"
}
}
}, {
"name" : "female",
"_links" : {
"self" : {
"href" : "http://localhost:8080/api/genders/2"
},
"gender" : {
"href" : "http://localhost:8080/api/genders/2"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:8080/api/genders{?page,size,sort}",
"templated" : true
},
"profile" : {
"href" : "http://localhost:8080/api/profile/genders"
}
},
"page" : {
"size" : 20,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
Угловая часть:
это мой пол.сервис
export class GenderService {
private gendersUrl = 'http://localhost:8080/api/genders';
constructor(
private http: HttpClient,
) {}
getGenders(): Observable<Gender[]> {
return this.http.get<Gender[]>(this.gendersUrl);
}
}
моя гендерная модель (нужна ли она мне?)
export class Gender{
name: string;
}
мой компонент
export class TestComponent implements OnInit {
genders: Gender[];
constructor(private genderService: GenderService) { }
ngOnInit() {
this.getGenders();
}
getGenders(): void {
this.genderService.getGenders()
.subscribe(genders => this.genders = genders);
}
}
и как я его использую
<ul class="genders">
<li *ngFor="let gender of genders">
{{gender.name}}
</li>
</ul>
Ответ не является массивом, и я получаю следующую ошибку
ERROR Error: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.
, если я использую map в моем сервисе sex.service для обработки этого или что я делаю неправильно?