Javascript 如何只获取一个用户而不是列表?
我尝试从一个用户列表中获取一个用户,并在另一个页面上显示他的个人资料 我想使用routerLink来实现这一点,并将此特定用户的id传递到下一页 路由正在工作,Im被定向到配置文件页面,但是当我记录http请求的结果时,我仍然会返回整个用户列表,就像在用户页面中一样,而不是一个用户的详细信息 我尝试过很多事情,比如在我的user.service.ts中更改url的路径,但这并没有解决问题,我甚至在使用此路径时遇到了404个请求错误Javascript 如何只获取一个用户而不是列表?,javascript,angular,typescript,ionic-framework,ionic4,Javascript,Angular,Typescript,Ionic Framework,Ionic4,我尝试从一个用户列表中获取一个用户,并在另一个页面上显示他的个人资料 我想使用routerLink来实现这一点,并将此特定用户的id传递到下一页 路由正在工作,Im被定向到配置文件页面,但是当我记录http请求的结果时,我仍然会返回整个用户列表,就像在用户页面中一样,而不是一个用户的详细信息 我尝试过很多事情,比如在我的user.service.ts中更改url的路径,但这并没有解决问题,我甚至在使用此路径时遇到了404个请求错误${this.url}/users/${id}/,而不是${thi
${this.url}/users/${id}/
,而不是${this.url}/users/?I=${id}/
(它在哪里工作)
api文档说,为了检索单个用户,它的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.html
<ion-avatar class="user-image" slot="start" [routerLink]="['/','profile', 'user.id']">
<ion-img src="assets/22.jpeg"> </ion-img>
</ion-avatar>
我假设${this.url}/users/?I=${id}将获得用户列表,因为参数可能根本不重要,所以它基本上与${this.url}/users/相同。你说文档提到要得到一个人,url应该是${this.url}/users/${id}。我建议您找出为什么在使用urllong shot时会出现错误,只是为了确定:它确实说
/users/{id}
,而不是/user/
?不,它说/users/{id}
@rtpHarry我想我知道这个问题。因为id必须是一个数字。如何更改let id=this.activatedRoute.snapshot.paramMap.get('id')代码>所以它是一个数字?它不是一个数字,一旦它变成一个查询字符串,所以在这种情况下没有任何区别。如果你真的想,你可以用。
<ion-avatar class="user-image" slot="start" [routerLink]="['/','profile', 'user.id']">
<ion-img src="assets/22.jpeg"> </ion-img>
</ion-avatar>
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);
});
}