2017-08-11 13 views
0

2つのSAPUI5 XMLビューがあり、両方のビュー間でナビゲーションが実装されています。 2回目のビューにアクセスするたびに、HTMLUI(jQueryとCSSを使用)を操作して、SAPUI5ライブラリですぐに利用できないルック・アンド・フィールの変更をデフォルトにします。SAPUI5:各ナビゲーション中のレンダリング後のビューのDOM要素へのアクセス

私の問題がある:私は2番目のビューのpatternMatchedハンドラでDOMを操作するためのjQueryのコードを書いたときが、その時点で存在していないDOMとして機能していません。 2番目のビューのonAfterRendering()にjQueryコードを配置すると、最初の訪問時にのみ実行されるので、2回目の訪問時には希望の結果が得られません。

この問題を解決する方法や、ここでどのような設計変更を行うべきか教えていただけますか?

また、ビューにナビゲートするたびにonAfterRendering()が呼び出されるSAPUI5の設定はありますか?

よろしく、

Faddy

答えて

0

あなたはあなたによって必要な操作を行うためのonBeforeShowメソッドを使用することができます。

onBeforeShowは、ビューが画面に表示されようとするたびに呼び出されます。

まず、onInitのビューにイベントを添付する必要があります。 コード:onAfterShowビューが画面に表示された後に呼び出されます。もし

onInit : function() { 
    this.getView().addEventDelegate({ 
     onBeforeShow : jQuery.proxy(function(evt) { 
      this.onBeforeShow(evt); 
     }, this) 
    }); 
}, 

onBeforeShow: function() { 

    console.log('called from on Before show'); 
    // DO manipulation here 
} 

、あなたはまだ、このイベントハンドラでDOM要素を見つけるonBeforeShowを覚えていないが妹を持っています。

APIリンク:NavContainerChild

+0

こんにちはラーフル、あなたの入力のための 感謝。 あなたのソリューションは私の仕事でした。 onAfterShow()で正常に動作しました:) 私はこの情報がsapui5のドキュメントに存在しない理由を疑問に思っています。 また、 onAfterRendering()とonAfterShow()を区別できますか? –

+0

@Faddy:これを確認してください:https://archive.sap.com/discussions/thread/3459136 –

関連する問題