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

Мой API использует номер вместо идентификатора строки. Если я хочу сделать это, я получаю сообщение об ошибке: Строка типа не может быть назначена номеру типа. Функция param принимает только строки в качестве идентификатора или как я могу изменить это число?

Вот мой код:

user.service.ts

// get a user's profile
  getUserDetails(id: number): Observable<any> {
    return this.http.get(`${this.url}/users/${id}/`); 
  }

user.page.html

 <ion-avatar  class="user-image"  slot="start" [routerLink]="['/', 'friendsdet', 'id']">
        <ion-img src="assets/9.jpeg"> </ion-img>
 </ion-avatar>

friendsdet.page.ts

information: null;
id: number;
...
  ngOnInit() {
     // Get the ID that was passed with the URL
     this.activatedRoute.paramMap.subscribe(params => { 
      this.id = params.get('id'); 
  });


     // Get the information from the API
     this.userService.getUserDetails(this.id).subscribe(result => {
       this.information = result;
       console.log(result);
     });
   }

app-routing.module.ts

...

     { path: 'friendsdet/:id', 
      loadChildren: './external-user/friendsdet/friendsdet.module#FriendsdetPageModule'
      },
    ...

Ответы [ 2 ]

2 голосов
/ 08 ноября 2019

Значения из URL всегда будут строками. Задача вашего кода - проверять и преобразовывать их в то, что им нужно. В вашем случае вы можете использовать функцию parseInt(), чтобы взять строку и изменить ее на число.

Вы также должны проверить, что входные данные действительно являются числами, возможно, используя регулярное выражение или Number.isIntegerфункция.

  ngOnInit() {
     // Get the ID that was passed with the URL
     this.activatedRoute.paramMap.subscribe(params => { 
      this.id = validateId(params.get('id')); 
  });

function validateId(id: any) : number {
    if(!Number.isNumeric(id)){
       console.error('number is not a number');
    }
    return parseInt(id);
}
0 голосов
/ 08 ноября 2019

Давайте попробуем идентификатор: любой; вместо идентификатор: номер;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...