Как сохранить историю браузера в приложение backbone.js?

Мой backbone.js имеет три представления:

  1. Список категорий
  2. Список элементов в категории
  3. Форма для отдельного элемента

I' m с помощью маршрутизатора backbone.js для навигации между этими представлениями. Пользовательские потоки в приложении идут 1<-->2, 2<-->3 и 3 --> 1. Пользователь может перемещаться вперед и назад с помощью кнопок браузера назад и вперед, что является желаемым поведением. Глубокая ссылка на любой элемент также работает.

Проблема в том, что я хочу сохранить историю в чистоте. Вот пример использования:

  • Пользователь открывает список категорий. История: "Список категорий" (верно)
  • Пользователь выбирает "Моя категория". История: "Моя категория" < "Список категорий" (верно)
  • Пользователь выбирает "Мой элемент".История: "Мой элемент" < "Моя категория" < "Список категорий" (верно)
  • Пользователь заполняет форму и сохраняет, перенаправляется в "Список категорий". История: «Список категорий» < «Мой элемент» < «Моя категория» < «Список категорий» (должно быть просто «Список категорий»)

Другой пример:

  • Пользователь открывает ссылку «Моя категория»
  • Пользователь нажимает кнопку домой. История: «Список категорий» < «Моя категория», должно быть «Список категорий»

Любые идеи о том, как реализовать это чистым способом?

10
задан OlliM 28 March 2012 в 11:34
поделиться