ログインとメニューの2つのビューがあります。ビューに移動するたびにonInit()を呼び出すにはどうすればよいですか?
シナリオ:
ログに - >
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()
をリロードする必要があります。
私は両方のものを試しましたが、動作しません。私がルートマッチからその関数を呼び出すと、ログアウト時にも実行されます。 onAfterRenderingまたはonBeforeRenderingを使用すると、ページが再レンダリングされないため何も起こりません。 –
ルートマッチの問題だけが、グローバル変数を1つ作成し、関数が実行されるとそのグローバル変数を偽にするようにします。 sap.ui.getCore()。urVariable = true; onInitでこれを行います。今すぐif(sap.ui.getCore()。urVariable){//あなたstuff.sap.ui.getCore()。urVariable = false; }これをfalseに設定します。 –