我是Angular 2的新手,并尝试开发具有基本CRUD功能的项目。
我遇到一个问题,即我有一个User
组件并试图在ngAfterViewInit
挂钩中访问它的属性,但它显示undefined
。
以下是User
组件的代码。
export class UserComponent implements OnInit, AfterViewInit
{
private users: User[];
private userRoles;
ngOnInit(){
//get users from service
this.getUserDetails();
}
ngAfterViewInit() {
console.log(this);
console.log(this.users);
}
getUserDetails() {
this._userService.getUsers().subscribe(users => this.users = users);
}
}
以下是控制台的屏幕截图。我可以看到Object具有属性users
,但它在控制台中显示undefined
。
如果我错过任何事情,请提出建议。 提前谢谢。
答案 0 :(得分:0)
检查getUserDetails
内的用户属性。您可以在模板中使用users
属性。检查component lifecycle hooks以更好地了解组件生命周期。
getUserDetails() {
this._userService.getUsers().subscribe((users) => {
this.users = users;
console.log(this.users);
});
}
答案 1 :(得分:0)
我认为这不是角度2问题...... 这是打印此实例全球的打字稿问题。
我们可以通过在typescripts中使用let和declaring变量来实现这一点...... 当分配的javascript对象被克隆到其他对象时,对其中一个的更改将自动传递给其他
当我们想要在 jquery 函数
中访问typescript 这个对象时,这个问题也 arriseslet _this = this;
something.each(function() {
console.log(_this); // the lexically scoped value
console.log(this); // the library passed value
});