我有一个配置文件组件,它通过api调用获取用户。
ProfileComponent
this.UserSubscription = this.auth.getUser().subscribe(res => {
this.User = res;
})我将用户数据传递给孩子
<section class="user-achievements" *ngIf="User">
<achievements [User]="User"></achievements>
</section>AchievementsComponent
@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调用。将数据加载到子组件中的正确方法是什么?
发布于 2017-04-13 20:28:20
他的问题是User是一个空物体,所以他的情况是假阳性。
发布于 2017-04-13 20:27:01
给用户一种类型。
一些有用的代码
@Input() user:string;
@Input() user:any;
@Inpuy() user: UserType
class UserType {
id:number
name:string;
}
constructor(user:UserType) {
this.user = user;
}https://stackoverflow.com/questions/43400985
复制相似问题