2016-08-06 2 views
0

У меня есть следующий код:Выбор правильного Angular2 Lifecycle

<view-user *ngIf="selectedUser" [userID]="selectedUser.id"></view-user> 

и API вызова: loadUser(userID) в моем view-user компоненте, в

ngOnInit() 

когда selectedUser изменяется, то ngOnInit является не вызывается, а макет не меняется. это означает, что я вижу того же пользователя, хотя выбранный пользователь отличается.

Я считаю, что ngOnInit() вызывается только в первый раз, после чего переменная изменяется, но ngOnInit() больше не называется.

Как я могу использовать метод loadUser() при изменении userID?

ответ

1

Вы можете использовать сеттер изменить идентификатор_пользователя:

private _userID: number; 

get userID() { 
    return this._userID; 
} 

@Input() 
set userID(userID: number) { 
    this._userID = userID; 
    loadUser(userID); 
} 

Или вы можете использовать ngOnChanges method.

Смежные вопросы