Как получить только одного пользователя вместо списка? - PullRequest
2 голосов
/ 08 ноября 2019

Я пытаюсь получить из списка пользователей только одного пользователя и отобразить его профиль на другой странице.

Я хочу сделать это с 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);
     });
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...