2013-05-23 6 views
2

У меня есть приложение для марионетки, состоящее из серии шагов, каждый из которых соответствует другому представлению, каждый из которых содержит привязку в навигационной панели.По умолчанию якорное действие с марионеткой Маршрутизация

<a href="#toolbox">Select Tools</a> 
<a href="#payment">Pay</a> 

Моя текущая борьба найти лучший способ структурировать URL, так что Marionette.AppRouter может реагировать на них. Всякий раз, когда я использую схему, такую ​​как href="/toolbox", страница просто пытается перейти к этому URL-адресу (обход маршрутизатора), если я не предотвращу действие по умолчанию якоря. Должен ли я использовать схему фрагмента, такую ​​как href="#toolbox"? Или, должен ли я настраивать свой вызов Backbone.history.start() по-другому? Какая здесь самая лучшая практика?

+0

Select Tools Вот как я пишу все мои hrefs – deven98602

ответ

3

Что я делаю, это «#toolbox» как href, но я все еще звоню preventDefault на событие click.

Таким образом:

  • приложение обрабатывает навигацию, а просто обновляет фрагмент URL
  • пользователь может открыть ссылку в новом окне (или загрузить закладку) и земли на ожидаемом странице (поскольку маршрут запускается контроллером маршрутизации)

По существу, как только маршрут был загружен, а пользователь «находится внутри» вашего приложения Marionette, маршруты больше не должны запускаться. Вместо этого действия диспетчера должны вызываться через события, чтобы экранировать отображение приложения. Подробнее об этом способе маршрутизации здесь (см. Раздел «Реализация маршрутизации»): http://samples.leanpub.com/marionette-gentle-introduction-sample.pdf

+0

Спасибо, что поделились своим прозрением, Дэвид. Я никогда не думал о маршрутизации только в качестве точки входа. Отличный ответ! – Mark

+0

Нет проблем, идея взята из Derick Bailey (создатель Marionette): http://lostechies.com/derickbailey/2011/08/28/dont-execute-a-backbone-js-route-handler-from-your-code/Проектирование вашего приложения с учетом этого очень полезно для обеспечения сложности управления ... –

+0

Thx для обмена книгой. Это очень хорошо. – schmijos

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