-1

我已阅读导航生命周期事件

我的用例是。我必须在页面加载以及从另一个页面按下后退按钮时刷新内容。

ionViewDidLoad(){
   this.getProjects();
}

ionViewWillEnter(){
   this.getProjects();
}

这工作正常,但当然ionViewWillEnter也可以在第一页加载时运行。所以触发了两个 api 请求(ionViewDidLoad + ionViewWillEnter)。有没有办法像设置标志或其他东西一样限制它们?

4

2 回答 2

2

您可以为此目的使用事件。每当用户单击返回按钮时,发布事件如下:

onBackButtonPressed(){
    this.events.publish('backPressed');
}

从要刷新数据的页面订阅此事件:

constructor(public events: Events) {
  events.subscribe('backPressed', () => {
       this.getProjects();
  });
}

请参考:https ://ionicframework.com/docs/v3/api/util/Events/

这个问题的问题是您必须从当前页面可以导航到的所有页面发布事件。

于 2019-03-13T10:28:05.663 回答
0

用这个:

  ionViewDidLoad()
  {
    this.navBar.backButtonClick = this.onClickBackButton.bind(this);
  }

  onClickBackButton(event)
  {

  }
于 2019-03-13T09:02:58.190 回答