Как получить параметры URL в Backbone?

Я использую Backbone с Marionette.

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

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

Адрес адресной строки:

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

Используя Php, это просто:

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

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


person Khalid    schedule 13.02.2017    source источник
comment
Возможный дубликат навигации по маршруту с помощью строки запроса   -  person Emile Bergeron    schedule 13.02.2017


Ответы (1)


Если маршрут определен примерно так:

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

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

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

В вашем случае это даст вам такие параметры:

name="XXX" age="XXX"

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

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

Где круглые скобки делают часть необязательной.

Документация по Backbone

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


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

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

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

person Ryad Boubaker    schedule 13.02.2017
comment
Имейте в виду, что для этого маршрута важен порядок параметров, и ни один из них не является необязательным. Их можно сделать необязательными с помощью круглых скобок help/?(name=:name)(&age=:age), но другой порядок не приведет к запуску маршрута. - person Emile Bergeron; 14.02.2017
comment
Скобки должны быть в строке маршрута, а не в URL-адресе. Я имел в виду, что URL-адрес, подобный help/?name=test&email=test%40example.com&age=6, не будет работать, даже если он является допустимым URL-адресом, поскольку порядок параметров строки запроса не имеет значения по дизайну. - person Emile Bergeron; 14.02.2017