Как да деактивирам хронологията на гръбнака, но все пак да разреша базирано на хеш маршрутизиране?

Кажете, че правя следното:

  • Щракнете върху връзка на началната страница (/) и отидете на /posts/1
  • Задействайте събитие и отидете на основния маршрут /posts/1/#/1/edit
  • Щракам обратно

Трябва да направя така, че потребителят да се връща обратно на началната страница (/), а не на /posts/1

Така че трябва да позволя на основните хеш маршрути да работят, но не и да променя хронологията. Аз лично бих предпочел да запазя историята, но това е изискване за проект.


person Chris Gaunt    schedule 18.02.2012    source източник


Отговори (1)


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

Вижте Backbone.Router#navigate за опцията replace:true.

По принцип просто извикайте .navigate на вашия рутер с trigger:true (за задействане на маршрута) и replace:true (за да предотвратите отиването му в историята)

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

Ето jsfiddle, който го показва в действие: http://jsfiddle.net/7Z6ju/1/

  • Щракнете върху „Публикуване 1“, за да отидете на страницата Публикуване 1.
  • След това щракнете върху „Редактиране“, за да отидете на страницата за редактиране.
  • След това натиснете бутона за връщане назад - трябва да се върнете у дома.
person Edward M Smith    schedule 18.02.2012