首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过刷新Angular4上的输入绑定不可用的用户

通过刷新Angular4上的输入绑定不可用的用户
EN

Stack Overflow用户
提问于 2017-04-13 20:14:05
回答 2查看 29关注 0票数 1

我有一个配置文件组件,它通过api调用获取用户。

ProfileComponent

代码语言:javascript
复制
this.UserSubscription = this.auth.getUser().subscribe(res => {
 this.User = res;
})

我将用户数据传递给孩子

代码语言:javascript
复制
<section class="user-achievements" *ngIf="User">
    <achievements [User]="User"></achievements>
</section>

AchievementsComponent

代码语言:javascript
复制
@Component({
  selector: 'achievements',
  template: `
        <ng-container *ngIf="User">
        <div *ngFor="let achievement of Achievements">
          <h5>Achievment</h5>
            <div>Name:</div>
            <div>Progress:</div>
        </div>
        </ng-container>`,
  styleUrls: ['./achievements.component.scss']
})
export class AchievementsComponent implements OnInit {
  @Input() User;
  Achievements;
  constructor(
    private api: ApiClient,
  ) {}
  ngOnInit() {
    console.log('this user', this.User);
    this.api.get(`users/${this.User.id}/achievements`)
      .subscribe( res => {
        this.Achievements = res.content;
      });
    }

  }

在重新加载时,控制台以未定义的用户身份显示我的api调用。将数据加载到子组件中的正确方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2017-04-13 20:28:20

他的问题是User是一个空物体,所以他的情况是假阳性。

票数 1
EN

Stack Overflow用户

发布于 2017-04-13 20:27:01

给用户一种类型。

一些有用的代码

代码语言:javascript
复制
@Input() user:string;
@Input() user:any;
@Inpuy() user: UserType

class UserType {
id:number
name:string;
}

constructor(user:UserType) {
this.user = user;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43400985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档