2017-04-24 23 views
0

Web IDEでルーティングに関する問題があります。 問題なしで最初のビューに移動することはできますが、2番目のビューに移動すると何も起こらず、エラーメッセージも表示されません。SAPUi5 - 2番目のナビゲーションでルーティングが機能しない

私はすでにウェブで見つかった多くの例を再作成しており、うまく機能しています。しかし、すべての確立された例は、1つのビューへの単一のルーティングに基づいています。

私は次のようでした:

アプリは
  • VIEW1は、デフォルトのビュー
  • が作成されているルートビューである4つのビュー(アプリ、VIEW1、VIEW2、view3)
    • を作成し
      1. ボタン&は、view2にナビゲートするために、view1内で機能する
      2. ボタンを作成しました。は、 W3
  • 拡張manifest.jsonをcomponent.jsに
  • 初期化ルータ(以下のコードを参照)
  • は、ID "APP"
  • ルーティング作品をVIEW2するビューアプリを与え、ルーティングview3には動作しません。 プロジェクトをgithubにアップロードしました。あなたが手伝ってくれることを願います。

    https://github.com/macsarena/routing04

    答えて

    2

    方法ルーティング作品(及びXML_view VIEW2ボタンで入力ミス)による変化のカップル。

    はSO、ルーティングがどのように動作するか:

    1. あなたは、URLのハッシュを変更します。
    2. ルーターはURLの変更を確認し、URLのパターンと一致する最初のターゲットを読み込みます。

    パターンでCurly_Braces ie.e {}を指定するとわかるように、値を表します。よりよく理解するために、ルートをfollwing考える:

      { 
           "name": "Emp", 
           "pattern": "Emp/{EmpID}", 
           "target": ["View2"] 
          }, 
    

    を今、私は私のURLハッシュに変更すると:#/のemp/1を、それがVIEW2をロードします。

    また、ハッシュURL::#/ Emp/100、それはロードされますか? view2。右!それはパターンと一致するので、すなわち。 Empの後に値(EmpID)が続きます。

    今、あなたのルートを考えてみます。

    { 
          "name": "View2", 
          "pattern": "{V2}", 
          "target": ["View2"] 
         }, { 
          "name": "View3", 
          "pattern": "{V3}", 
          "target": ["View3"] 
         } 
    

    ルートの両方のパターンが値を除いて、両方のと同じであり、何の差別化要因はありません。ルータは常に最初に一致したパターンターゲットをロードすることに注意してください。

    だから、URLが#/ 5の場合、view2が読み込まれます(最初にパターンに一致します)。あなたの名前を:view3 name:view2の上に置くと、view3ターゲットが最初に読み込まれます。

    他のビューをロードするには、の一意のハッシュURLを作成する必要があります。。それはVIEW2で、ボタンの押しにview3をロードします

    { 
           "name": "View2", 
           "pattern": "View2/{V2}", 
           "target": ["View2"] 
          }, { 
           "name": "View3", 
           "pattern": "View3/{V3}", 
           "target": ["View3"] 
          } 
    

    は私にあなたのルートを変更してみましょう。

    また、typ2のview2:onPressButton-> change to:onButtonPress(view2コントローラの関数の名前)です。

    これが役立つかどうか教えてください。 :)

    +0

    素晴らしいexplantion。 それは動作します、ありがとう! – macs

    関連する問題