angular, map: map 给结果晚点订阅
angular, map: map give result to subscribe late
我想用 Angular
构建一个用户页面。
在我的服务中,我通过此代码获取数据。
getUser(id: number): Observable<User> {
return this.http.get(`${this.baseUrl}/getUser.php?id=${id}`).pipe(
map((res) => {
this.user = res['data'];
return this.user;
}),
catchError(UsersService.handleError));
}
在组件中,我将数据保存到变量用户中。这是代码。
user: User;
constructor(
private UsersSer: UsersService,
private ActiveRout: ActivatedRoute) {
}
ngOnInit() {
this.getUser();
}
getUser() {
const id = +this.ActiveRout.snapshot.paramMap.get('id');
this.UsersSer.getUser(id).subscribe(user => {
this.user = user;
console.log(this.user);
}, (err) => {
console.log(err);
});
}
并在 html 中打印。
<div class="main-box clearfix">
<h2>{{user.name}}</h2>
<div class="profile-status">
<i class="fa fa-check-circle"></i> {{user.status}}
</div>
<img src="../../assets/images/{{user.image}}" alt="" class="profile-img img-responsive center-block">
<div class="profile-label">
<span class="label label-danger">{{user.role}}</span>
</div>
</div>
当我 运行 在浏览器中编写代码时,我发现数据来得太晚了。
我是堆栈溢出的新手,如果我做错了,抱歉。
错误截图。
使用 ngif 测试用户是否未定义,以便在加载之前不绑定它:
<div class="main-box clearfix">
<div *ngIf="user != undefined">
<h2>{{user.name}}</h2>
<div class="profile-status">
<i class="fa fa-check-circle"></i> {{user.status}}
</div>
<img src="../../assets/images/{{user.image}}" alt="" class="profile-img img-responsive center-block">
<div class="profile-label">
<span class="label label-danger">{{user.role}}</span>
</div>
</div>
</div>
我想用 Angular
构建一个用户页面。
在我的服务中,我通过此代码获取数据。
getUser(id: number): Observable<User> {
return this.http.get(`${this.baseUrl}/getUser.php?id=${id}`).pipe(
map((res) => {
this.user = res['data'];
return this.user;
}),
catchError(UsersService.handleError));
}
在组件中,我将数据保存到变量用户中。这是代码。
user: User;
constructor(
private UsersSer: UsersService,
private ActiveRout: ActivatedRoute) {
}
ngOnInit() {
this.getUser();
}
getUser() {
const id = +this.ActiveRout.snapshot.paramMap.get('id');
this.UsersSer.getUser(id).subscribe(user => {
this.user = user;
console.log(this.user);
}, (err) => {
console.log(err);
});
}
并在 html 中打印。
<div class="main-box clearfix">
<h2>{{user.name}}</h2>
<div class="profile-status">
<i class="fa fa-check-circle"></i> {{user.status}}
</div>
<img src="../../assets/images/{{user.image}}" alt="" class="profile-img img-responsive center-block">
<div class="profile-label">
<span class="label label-danger">{{user.role}}</span>
</div>
</div>
当我 运行 在浏览器中编写代码时,我发现数据来得太晚了。
我是堆栈溢出的新手,如果我做错了,抱歉。
错误截图。
使用 ngif 测试用户是否未定义,以便在加载之前不绑定它:
<div class="main-box clearfix">
<div *ngIf="user != undefined">
<h2>{{user.name}}</h2>
<div class="profile-status">
<i class="fa fa-check-circle"></i> {{user.status}}
</div>
<img src="../../assets/images/{{user.image}}" alt="" class="profile-img img-responsive center-block">
<div class="profile-label">
<span class="label label-danger">{{user.role}}</span>
</div>
</div>
</div>