我很难找到一种在加载时在主控制器中执行功能的方法。当第一次加载主控制器时,我可以在onInit
内执行该功能。但问题是当用户注销并在主控制器中重新登录时,方法onInit
不会再次执行。每次控制器加载时都有办法执行函数吗?
答案 0 :(得分:2)
以下代码可帮助您实现所需目标
onInit: function() {
this.getRouter().getRoute("routeName").attachPatternMatched(this._onObjectMatched, this);
}
_onObjectMatched: function() {
//this function executes every time you navigate to this page
}
答案 1 :(得分:0)
“当用户注销并在主控制器中重新登录时”是什么意思?当您的应用第一次加载视图时,它会执行onInit,onBeforeRendering,onAfterRendering和其他生命周期事件。但是如果你没有销毁控制器实例,你就永远不会“退出”它。它作为DOM中的对象保留在那里,并且可以在需要时调用它们的函数。
现在,如果您使用UI5路由器来回导航到其他视图,那么我建议您在路由器中设置“PatternMatched”事件。只要给定的模式匹配,无论是第1次还是第n次,都会触发此事件。
退房: