我有两种观点:登录和菜单。
情景:
登录 - >
onInit() , onBeforeRendering() , onAfterRendering()
获得 在Menu.controller.js中调用并转到菜单视图。退出 - >
deleteData(); oRouter.navTo("Login", {}, true);
回到 登录视图。登录 - >
onInit() , onBeforeRendering() , onAfterRendering()
没有被调用并进入菜单视图。
我已尝试将我的菜单控制器附加到onInit中的特定路线,但它无法正常工作:
function onInit(){
this._oRouter = sap.ui.core.UIComponent.getRouterFor(this);
this._oRouter.attachRouteMatched(initMenu, this);
this.initMenu();
}
如何再次强行调用上述方法?我需要重新加载onInit()函数中的方法initMenu()
才能正确接收菜单。
答案 0 :(得分:2)
onInit只调用一次。它的生命周期方法是Sapui5。如果你想要一个每次导航时都会被调用的函数,那么使用onAfterRendering或onBeforeRendering。其他明智的创建函数并从路由匹配中调用该函数。
以上路线匹配应该是这样的。
this._oRouter = sap.ui.core.UIComponent.getRouterFor(this);
this._oRouter.attachRouteMatched(this.yurfunction, this);
//现在按以下步骤
yurfunction(){ //now give call to you function from here }
答案 1 :(得分:0)
您可以查看视图的onBeforeShow()方法。每次显示视图时都会调用此生命周期钩子。你可以在这里做你的操作。请参阅:https://openui5.hana.ondemand.com/#docs/api/symbols/sap.m.NavContainerChild.html