2016-06-21 3 views
0

У меня есть 2 страницы. На первой странице пользователю нужно выбрать выпадающие значения & Нажмите submit, где я вызываю 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-адрес веб-страницы; он должен измениться после загрузки данных. Если он не изменился, убедитесь, что в вашей Component.jsинициализирован router: this.getRouter().initialize().

Редактировать: На основе предоставленного кода вы пытаетесь добавить массив в качестве параметра URL. Это не поддерживается, вы должны передавать только строковые параметры или кодировать весь массив и декодировать во втором представлении. Определение маршрутизации также неверно; если вы хотите использовать цели, вы должны определить целевой объект, как вы можете видеть here. Если вы не хотите использовать целевые объекты, измените имя свойства "target" на "view" в конструкторе Router (обратите внимание, что он теперь устарел, поэтому я рекомендую использовать компонент и/или manifest.json для определения маршрутизации с целями).

+0

извините, что было редактирование ошибка. В фактическом коде я прошел его правильно. Я также проверил 'component.js' и маршрутизатор инициализирован. Но все же он возвращает ошибку «Can not read property» length «null» – Hari

+0

@Yal Не могли бы вы разместить свой код (например, используя JSBin)? Вы проверили URL-адрес после получения сообщения об ошибке? Он содержит параметр детали? – nistv4n

+0

Я добавил здесь свой код. Пожалуйста, обратитесь к [JsBin] (https://jsbin.com/muxuco/edit?html,console,output) – Hari