2015-07-21 1 views
1

У меня есть часть моего приложения для марионетки, которое я открываю для загрузки. Когда это произойдет, я хочу зарегистрировать его как событие «navigate», для которого в настоящее время я использую App.navigate("/modal",false); для изменения URL-адреса. В модальном представлении я слушаю событие задней истории, чтобы закрыть модальный (полезный для Android/mobile), но я бы хотел, чтобы append «/ modal» к текущему маршруту, а не к корню.Добавление к текущему маршруту в Магистральной/Марионеточной?

Как я могу получить текущий маршрут/URL-адрес, чтобы добавить «/ modal» и вызвать функцию .navigate()?

Спасибо!

EDIT:

Видимо, фраза, которую я искал здесь, с точки зрения веб-разработки, является «микро-государство», как описано в блоге здесь: http://chrisawren.com/posts/Implementing-microstates-in-Backbone-js

Предложенный подход заключается в полностью обходить основную историю и напрямую взаимодействовать с стеком истории html5, в тех местах, где вам нужен полноэкранный режим, но не хотите вызывать обработку маршрутизатора или изменять URL-адрес, но все же хотите поддерживать кнопку «Назад».

ответ

2

Просто

router.navigate(router.fragment + "/modal")

+0

Слишком просто! Хахаха. Чтобы полностью реализовать это, у меня, видимо, уже была функция 'App.getCurrentRoute()' в моем app.js, возможно, из книги «Нежное введение в марионетку». Это возвращает 'Backbone.history.fragment', который является правильным фрагментом, о котором вы говорите. – mix3d

+1

В дальнейших исследованиях выясняется, что «микросостояния» были ключевой фразой, которую мне нужно было искать, и я нашел блог, который объясняет, как реализовать то, что я действительно искал. Тем не менее, поскольку вы отлично справились с ответом на мой вопрос, как указано, (и я это уже реализовал), я отметил это как ответ – mix3d

+1

Рад помочь, это должна быть новая функция, это было 1 год, не касаясь позвоночника. Я помню, несмотря на то, что этот «фрагмент» был очень распространенным случаем, он не был задокументирован –