Я пытаюсь получить из списка пользователей только одного пользователя и отобразить его профиль на другой странице.
Я хочу сделать это с routerLink и передачей идентификатора этого конкретного пользователя на следующую страницу.
Маршрутизация работает, я перенаправлен на страницу профиля, но когда я регистрирую результаты http-запроса, я все равно получаю весь список пользователей, как на странице пользователей, а не детали одного пользователя.
Я пробовал много вещей, таких как изменение пути URL в моем user.service.ts, но это не решило проблему. Я даже получил 404 ошибки запроса при использовании этого пути ${this.url}/users/${id}/
вместо ${this.url}/users/?i=${id}/
(где это работает).
Api Docs говорит, что для извлечения одного пользователя его http://1234//users/{id}/
он использует эту схему, в то время как id является целым числом. Но когда я хочу применить эту схему, я получаю ошибку 404.
Вот почему я должен использовать версию ?I=
, но проблема в том, что я получаю полный список пользователей только на следующей странице.
МОЙ КОД:
user.service.ts
// get a user's profile
getUserDetails(id): Observable<any> {
return this.http.get(`${this.url}/users/?i=${id}/`); // why add ?i
}
user.page.ts
// get all users in the users page
getAllUsers() {
this.userList = this.userService.getList()
.pipe(map(response => response.results));
}
user.page.html
<ion-avatar class="user-image" slot="start" [routerLink]="['/','profile', 'user.id']">
<ion-img src="assets/22.jpeg"> </ion-img>
</ion-avatar>
profile.page.ts
information = null;
...
ngOnInit() {
// Get the ID that was passed with the URL
let id = this.activatedRoute.snapshot.paramMap.get('id');
// Get the information from the API
this.userService.getUserDetails(id).subscribe(result => {
this.information = result;
console.log(result);
});
}