2017-02-13 24 views
2

Я использую Магистраль с марионеткой.Как получить параметры url в магистрали?

У меня есть ссылка <a> тег, где я передаю несколько параметров, как я могу извлечь эти значения на других страницах с помощью Backbone?

<a href="http://localhost.com:8080/help/?name=matth&age=25&[email protected]">View Details</a> 

Адрес Бар URL:

http://localhost.com:8080/help/?name=matth&age=25&[email protected] 44 

Использование Php, это просто:

$Url = $_GET['state']."#".$_GET['city']; 

Как я могу добиться этого в моем Backbone приложение?

+0

Возможный дубликат [указать маршрут с помощью строки запроса] (http://stackoverflow.com/questions/11671400/navigate-route-with-querystring) –

ответ

3

Если маршрут определяется с чем-то вроде этого:

'help/:name&:age&:email' : 'help' 

Тогда вы можете получить доступ к этим Params в функцииhelp только определив их в сигнатуре метода (в пределах магистральную маршрутизатора),

help: function(name, age, email) { 
    // do whatever you want with the params 
} 

В вашем случае, это даст вам Params так:

name="XXX" age="XXX" 

Таким образом, правильная маршрутизация будет

'help/?(name=:name)(&age=:age)(&email=:email)' : 'help' 

Где Скобки сделать часть необязательно.

Backbone docs

Маршруты могут содержать части параметров, :param


Обратите внимание, что порядок важен и следующий URL не будет инициировать маршрут обратного вызова. Обратите внимание на размещение параметров email и age.

help/?name=test&email=test%40example.com&age=6 

Для того, чтобы вызвать маршрут независимо от числа Params и их упорядочения, посмотрите на то, как parse the query string в функции маршрутизации, но это не всегда будет работать.

+1

Помните, что с этим маршрутом порядок параметров важен, и ни один из них не является необязательным , Их можно сделать необязательными с помощью скобок «help /? (Name =: name) (& age =: age)», но другой порядок не будет запускать маршрут. –

+0

Скобки должны быть в строке маршрута, а не в URL-адресе. Я имел в виду, что URL-адрес, например 'help /? Name = test & email = test% 40example.com & age = 6', не удался бы, даже если это действительный URL-адрес, поскольку порядок строк строки запроса не имеет отношения к проекту. –

+1

Просветите нас с помощью редактирования. –