(Ionic / Angular 2)在NgFor中调用服务?

时间:2016-07-20 14:27:31

标签: html angularjs typescript angular ionic-framework

我有这个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)。感谢..

1 个答案:

答案 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内的数组提供。

强烈建议不要使用昂贵的模板或有模板副作用的方法,因为它效率极低。