2017-04-24 2 views
0

웹 IDE에서 라우팅 관련 문제가 있습니다. 문제없이 첫 번째보기로 이동할 수 있지만 두 번째보기로 이동하려고해도 아무 일도 일어나지 않으며 오류 메시지도 나타나지 않습니다.SAPUi5 - 두 번째 navTo에 대한 라우팅이 작동하지 않습니다.

이미 웹에있는 많은 예제를 다시 만들었지 만 잘 작동합니다. 그러나 모든 설립 된 예제는 하나의보기로의 단일 라우팅을 기반으로합니다.

나는 다음을했다 :

  1. 만든 4보기 (응용 프로그램, 뷰 1, 뷰 2, view3)
    • 응용 프로그램은
    • 뷰 1은
    • 가 만든 기본보기를 인 루트보기는 버튼 &은 view1로 이동하여 view2로 이동합니다.
    • 버튼을 만들었습니다.은 W3
  2. 강화 manifest.json을 component.js에
  3. 초기화 된 라우터 (아래 코드 참조)
  4. 는 ID가 "응용 프로그램"

라우팅 작품을 뷰 2에 대한보기 응용 프로그램을 주었고, 라우팅 view3에 작동하지 않습니다. 프로젝트를 github에 업로드했습니다. 당신이 도울 수 있기를 바랍니다.

변경

https://github.com/macsarena/routing04

답변

2

커플로 인해 어떻게 라우팅 작업 (및 XML_view 뷰 2 버튼의 오타).

는 SO, 라우팅 작동 방법 :

  1. 당신은 URL의 해시를 변경합니다.
  2. 라우터에서 URL이 변경된 것으로보고 URL의 패턴과 일치하는 첫 번째 대상을로드합니다.

패턴에서 Curly_Braces ie.e {}를 지정할 때 알 수 있듯이 값을 나타냅니다. 더 나은 이해를 위해, 길을 follwing을 고려해

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

을 지금, 나는 내 URL 해시하기 위해 변경하는 경우 : #/EMP를/1, 그것은 뷰 2를로드합니다.

또한 해시 URL : #/Emp/100,로드 할 것입니까 ?? view2. 권리! 패턴과 일치하기 때문에. Emp 다음에 값 (EmpID)이옵니다. 경로가 같은 두 값을 제외하고 동일하고 어떤 차별화 요소가없는 모두

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

패턴 :

지금, 당신의 경로를 고려하십시오. 라우터는 항상 일치하는 첫 번째 패턴 타겟을로드합니다.

그래, URL이 #/5 인 경우 view2가로드됩니다 (패턴과 일치).이름을 view3 위의 이름 : view2로 지정하면 먼저 view3 대상을로드합니다.

다른 관점을로드하려면 개의 고유 해시 URL을 만들어야합니다.. 그것은 뷰 2에서 버튼을 눌러에 view3를로드

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

:

날에 경로를 변경하자.

또한 view2의 typo : onPressButton-> change to : onButtonPress (view2 컨트롤러의 함수 이름이므로).

도움이 될지 알려주세요. :)

+0

위대한 explantion. 정말 고마워요! – macs