2016-08-06 9 views
0

ich den folgenden Code haben:das Recht Angular2 Lifecycle Wahl

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

und einen API-Aufruf: loadUser(userID) in meinem view-user Komponente, in der

ngOnInit() 

, wenn der selectedUser geändert wird, ist die ngOnInit nicht angerufen werden und das Layout ändert sich nicht. es bedeutet, dass ich denselben Benutzer sehe, obwohl der selectedUser anders ist.

Ich glaube, die ngOnInit() wird nur in der ersten Zeit aufgerufen, und danach ändert sich die Variable, aber die ngOnInit() wird nicht mehr aufgerufen. Wie kann ich meine loadUser() Methode immer ausführen, wenn die userID geändert wird?

Antwort

1

können Sie einen Setter verwenden, um Ihre Benutzer-ID zu ändern:

private _userID: number; 

get userID() { 
    return this._userID; 
} 

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

Oder Sie ngOnChanges method verwenden können.