2015-10-22 2 views
1

Я работаю над проектом, который требует, чтобы большинство состояний пользовательского интерфейса воспроизводилось по URL-адресу. В традиционной (на стороне сервера) приложение, я мог бы использовать оба параметра URL, как:Параметры строки запроса маршрутизатора Marionette В маршрутах фрагментации URL-адресов

/ресурсы /: идентификатор

и неупорядоченных необязательных параметров строки запроса, например:

/ресурсы /: id? page = 5 & sort = date

Есть ли идиоматический способ достичь этого с помощью маршрутизации магистрали/марионетки? Я не хочу настраивать маршруты для каждой возможной комбинации параметров.

Тот факт, что я не вижу в этом такого многого, заставляет меня думать, что я могу лаять неправильное дерево, подход, но я действительно думаю, что могу представить как можно большее количество пользовательского интерфейса в URL-адресе важно для многих проектов.

ответ

1

Похоже, что лучший вариант - это теперь осиротевший проект backbone-query-parameters.

Он поддерживает маршруты именно в том виде, я ищу:

#resources/:id?flag=true

0

параметры URL не действительно в жизнь Backbone/марионеток. Одна из возможных причин заключается в том, что параметры URL не являются дружественными к SEO.

Вместо этого, вы можете настроить дополнительные фрагменты URL, которые будут работать в значительной степени как параметры URL, таким образом:

/resources/:id(/page/:page)(/sort/:sort) 

Если вы сделаете так, только Гоча здесь является то, что эта последовательность «параметров» необходимости для заказа.

ОДНАКО, если вам это нужно, чтобы быть неупорядоченным, вы можете просто использовать регулярные выражения с router.route() метода внутри initialize, как объяснено в Router#route