2016-11-21 1 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

он показывает данные в 'getUserDetails()', но все равно '' undefined' в ngAfterViewInit() ' – Karan

+0

Каков ваш прецедент, для которого вам нужно проверить' users' внутри 'ngAfterViewInit'? – ranakrunal9

+0

Я хочу инициализировать загрузочный бутстрап в hook 'initTable ($ tableUsers, columnsUsers, this.users, $ removeUser, $ toolbarUsers);' – Karan

0

Я думаю, что это не угловые 2 вопроса ... Это машинопись проблема доступа этого экземпляра глобально.

Мы можем сделать это с помощью пусть и объявить переменную в машинописных ... Когда JavaScript объект назначен клонируют в другой объект, то изменения, внесенные в один автоматически передается другой

так что этот вопрос также arrises когда мы хотим получить доступ машинописи этого объекта внутри JQuery функции

let _this = this; 
something.each(function() { 
    console.log(_this); // the lexically scoped value 
    console.log(this); // the library passed value 
}); 
Смежные вопросы