选择正确的Angular2生命周期

时间:2016-08-06 09:28:12

标签: angular

我有以下代码:

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

以及我的loadUser(userID)组件中

中的API调用view-user
ngOnInit() 

每当更改selectedUser时,都不会调用ngOnInit并且布局不会更改。这意味着虽然selectedUser不同,但我看到的是同一个用户。

我相信只在第一次调用ngOnInit(),之后变量发生变化,但ngOnInit()不再被调用。

每当loadUser()发生变化时,我如何运行userID方法?

1 个答案:

答案 0 :(得分:1)

您可以使用setter更改您的用户ID:

private _userID: number;

get userID() {
  return this._userID;
}

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

或者您可以使用ngOnChanges method