Как отключить историю магистрали, но разрешить маршрутизацию на основе хеша? - PullRequest
8 голосов
/ 18 февраля 2012

Скажите, что я делаю следующее:

  • Нажмите на ссылку на главной странице (/) и перейдите к / posts / 1
  • Запустить событие и перейти к магистральному маршруту / posts / 1 / # / 1 / edit
  • Я нажимаю назад

Мне нужно сделать так, чтобы пользователь снова оказался на главной странице (/), а не на / posts / 1

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

1 Ответ

13 голосов
/ 19 февраля 2012

Последняя версия Backbone (0.9.x) имеет возможность запускать маршрут, но не добавлять его в историю.

См. Backbone.Router #, перейдите для опции замены: true.

По сути, просто вызовите .navigate на вашем маршрутизаторе с триггером: true (для запуска маршрута) и замените: true (для предотвращения перехода в историю)

app.navigate('posts/1/edit',{trigger:true, replace: true});

Вот jsfiddle, показывающий это в действии: http://jsfiddle.net/7Z6ju/1/

  • Нажмите «Опубликовать 1», чтобы перейти на страницу «Опубликовать 1».
  • Затем нажмите «Изменить», чтобы перейти к страница редактирования.
  • Затем нажмите кнопку "Назад" - и вы должны вернуться домой.
...