【问题标题】:How to Execute a Controller Method Every Time It Loads?每次加载时如何执行控制器方法?
【发布时间】:2018-03-15 13:58:44
【问题描述】:

我正在努力寻找一种在主控制器加载时执行函数的方法。第一次加载主控制器时,我可以在onInit 中执行该函数。但问题是当用户注销并重新登录主控制器时,方法onInit 不会再次执行。有没有办法在每次控制器加载时执行一个函数?

【问题讨论】:

标签: sapui5


【解决方案1】:

以下代码将帮助您实现您的目标

onInit: function() {
  this.getRouter().getRoute("routeName").attachPatternMatched(this._onObjectMatched, this);
}

_onObjectMatched: function() {
  //this function executes every time you navigate to this page
}

Demokit link for detailed information

【讨论】:

    【解决方案2】:

    “当用户注销并重新登录主控制器时”是什么意思?当您的应用第一次加载视图时,它会执行 onInit、onBeforeRendering、onAfterRendering 和其他生命周期事件。但是,如果您不销毁控制器实例,您就永远不会“注销”它。它作为一个对象保留在您的 DOM 中,并且可以在需要时调用它们的函数。

    现在,如果您使用 UI5 路由器来回导航到其他视图,那么我建议您在路由器中设置“PatternMatched”事件。只要给定模式匹配,无论是第一次还是第 n 次,都会触发此事件。

    退房:

    【讨论】:

      猜你喜欢
      • 2012-06-13
      • 2016-09-27
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      相关资源
      最近更新 更多