2016-11-21 5 views
1

私はAngular 2で新しく、基本的なCRUD機能を持つプロジェクトを開発しようとしています。 Userコンポーネントがあり、ngAfterViewInitフックのプロパティにアクセスしようとしていますが、undefinedが表示されているという問題に直面しています。コンポーネントプロパティにアクセスする際の角2の問題

ここにコードは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);    
     }  
} 

以下はコンソールのスクリーンショットです。オブジェクトにはusersというプロパティがありますが、コンソールにはundefinedと表示されています。 Object out put console

私が何かを逃した場合は、ご提案ください。 ありがとうございます。

答えて

0

getUserDetails内のユーザープロパティを確認してください。テンプレートにusersプロパティを使用できます。コンポーネントのライフサイクルをよりよく理解するには、component lifecycle hooksをチェックしてください。

getUserDetails() {  
    this._userService.getUsers().subscribe((users) => { 
    this.users = users; 
    console.log(this.users); 
    }); 
} 
+0

内でこのオブジェクトtypescriptですにアクセスしたい場合には 'getUserDetails()'内のデータを示すが、) 'ngAfterViewInit(でまだ' undefined'ています' – Karan

+0

' ngAfterViewInit'内の 'users'をチェックする必要があるユースケースは何ですか? – ranakrunal9

+0

私は、 'initTable($ tableUsers、columnsUsers、this.users、$ removeUser、$ toolbarUsers);フックでブートストラップデータテーブルを初期化したいと思います。 – Karan

0

私は、これは、角2の問題はないと思う... は、これは世界的にこのインスタンスにアクセスtypescriptです問題です。私たちは聞かせて使用すると、写しで変数を宣言することによってこれを行うことができ

... 割り当てjavascriptオブジェクトが他のオブジェクトに複製され、その後1に対して行われたが、自動的に他の

に渡されるので、この問題はまたarrisesを変更我々はjqueryの機能

let _this = this; 
something.each(function() { 
    console.log(_this); // the lexically scoped value 
    console.log(this); // the library passed value 
}); 
関連する問題