2016-06-21 2 views
0

2 페이지가 있습니다. 첫 번째 페이지에서 사용자가 드롭 다운 값 &을 선택해야합니다. 제출을 클릭합니다. 여기서 jQuery ajax를 호출합니다. 성공하면 2 페이지에 응답해야합니다. 다음은 내가 시도한 것입니다. 그러나 그것은 효과가 없습니다.SAPUI5 - 매개 변수가있는 라우팅

firstPage.controller.js

jQuery.ajax({ 
url: requestUriOutput, 
method: "GET", 
async: false, 
dataType: "json", 
success: function(data) { 
if(data.d.results.length > 0) 
    { 
     var detail = data.d.results.concat(); 
     var oRouter = sap.ui.core.UIComponent.getRouterFor(this); 
     oRouter.navTo("second", {details : detail}); 
    } 
} }); 

SecondPage.controller.js

onInit: function() { 
      var oRouters = sap.ui.core.UIComponent.getRouterFor(this); 
      oRouters.getRoute("second").attachPatternMatched(this._onObjectMatched, this); 
     }, 
     _onObjectMatched: function (oEvent) { 
      var obj = oEvent.getParameter("arguments").details; 
     }, 

manifest.json을

"routes": [{ 
      "pattern": "", 
      "name": "app", 
      "target": "app" 
     }, { 
      "pattern": "first", 
      "name": "first", 
      "target": "first" 
     }, { 
      "pattern": "second/{details}", 
      "name": "second", 
      "target": "second" 
     }], 

답변

0

당신은 이름 "table"으로 경로를 탐색하고 싶지만, 당신을 manifest.json에는이 이름의 경로가 없습니다. 경로 이름을 정렬하고 다시 시도하십시오.

웹 페이지의 URL을 확인하십시오. 데이터가 다운로드 된 후에 변경되어야합니다. 값이 변경되지 않으면 init() 함수에서 router이 초기화되었는지 확인하십시오 (this.getRouter().initialize()).

편집 : 제공된 코드를 기반으로 URL 매개 변수로 배열을 추가하려고합니다. 이것은 지원되지 않습니다. 문자열 매개 변수 만 전달하거나 전체 배열을 인코딩하고 두 번째보기에서 디코딩해야합니다. 라우팅 정의도 잘못되었습니다. 대상을 사용하려면 here처럼 대상 개체를 정의해야합니다. 타겟을 사용하지 않으려면 Router 생성자에서 속성 이름 "target""view"으로 변경합니다 (이제는 더 이상 사용되지 않으므로 대상과의 라우팅을 정의하려면 Component 및/또는 manifest.json을 사용하는 것이 좋습니다).

+0

죄송합니다. 편집 실수였습니다. 실제 코드에서는 올바르게 전달했습니다. 나는 또한'component.js'를 검사했고 라우터가 초기화되었다. 하지만 여전히 그것은 "null의 속성 'length'을 읽을 수 없습니다. – Hari

+0

@Yal JSBin을 사용하여 코드를 게시 할 수 있습니까? 오류 메시지가 표시되면 URL을 확인 했습니까? 세부 정보 매개 변수가 포함되어 있습니까? – nistv4n

+0

여기에 제 코드를 추가했습니다. [JsBin] (https://jsbin.com/muxuco/edit?html,console,output) – Hari

관련 문제