Angular 2访问componet属性的问题

时间:2016-11-21 12:42:39

标签: javascript angularjs angular typescript

我是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,但它在控制台中显示undefinedObject out put console

如果我错过任何事情,请提出建议。 提前谢谢。

2 个答案:

答案 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 这个对象时,这个问题也 arrises
let _this = this;
something.each(function() {
    console.log(_this); // the lexically scoped value
    console.log(this); // the library passed value
});