我有这个ngFor
<ion-card *ngFor="let review of reviews">
<ion-card-content>
{{getUserName(review.user_ID)}}
</ion-card-content>
</ion-card>
我需要显示用户名,但要获取用户名,我需要调用用户服务来获取用户名。问题是当我尝试这样的时候。页面继续加载和加载。在ngFor中调用服务的正确方法是什么?
这是我的getUserName方法:
getUserName(userId)
{
this.userService.loadUserById(userId)
.then(dataUser => {
this.user = dataUser;
});
return this.user;
}
当我得到对象如何访问像html中的对象属性? (例如:user.firstName)。感谢..
答案 0 :(得分:1)
至少需要一些缓存才能在每次更改检测周期都没有调用服务器,这就是调用getUsername(review.uer_ID)
的时间,例如在What is the correct way to share the result of an Angular 2 Http network call in RxJs 5?中解释
更好的方法是提前获取所有reviews
的所有用户名,并将其作为绑定到*ngFor
内的数组提供。
强烈建议不要使用昂贵的模板或有模板副作用的方法,因为它效率极低。