2015-02-02 3 views
1

URL: http://localhost:3000/dashboard?ID=10400&Name=10400Получить текущий URL с параметрами запроса в Backbone марионеток

Я пытаюсь получить идентификатор Params запроса и имя из URL, но я получаю не определено. Я также попробовал backbone-queryparams, но все равно это не работает. Любая идея, как получить текущий URL-адрес с параметрами в Backbone Marionette

define([ 
    'jquery', 
    'backbone', 
    'marionette',  
    'modules/dashboard/controllers/dashboardController', 
    'backbone.queryparmas' 
], function ($, Backbone, Marionette, Controller) { 
    'use strict'; 

    return Marionette.AppRouter.extend({ 

     appRoutes: { 
      '': 'dashboard' 
     }, 

     initialize: function(){ 
      console.log(Backbone.history.fragment); // getting undefined 
     }, 

     controller: new Controller() 
    }); 

}); 

ответ

0

Я должен был сделать это, чтобы получить параметры запроса. Не уверен, есть ли лучший способ.

messagedashboard: function() { 
    var searchParams = window.location.search.slice(1); // returns 'ID=10400&Name=10400' 
    var getParamsFromSearchParams = $.deparam(searchParams); //changes into object 
} 

Для использования $.deparam проверки jquery.bbq библиотеки.

+0

это, похоже, не работает, когда URL-адрес «domain.com/#path? query = param». Слой 'window.location.search' возвращает пустую строку для меня – mix3d

1

Из примера здесь (https://stackoverflow.com/a/11671457/3780922), лучше всего установить маршрут с параметром catchall, который даст вам всю строку запроса.

appRoutes: { 
    '': 'showDash', //default for blank/empty route 
    'dashboard': 'showDash', 
    'dashboard?*queryString' : 'showDash' 
}, 
showDash: function (queryString) { 
    var params = parseQueryString(queryString); 
    if(params.foo){ 
     // foo parameters was passed 
    } 
} 

Вы должны написать свой собственный парсер строки запроса, однако, но если оно не равно нулю, то у вас есть параметр запроса передается в объекте QueryString, что в вашем примере будет "ID=10400&Name=10400"

Смежные вопросы