2012-01-30 3 views
1

У меня есть простой настройки маршрутизатора здесь:Дифференцируя назад/вперед навигации с Backbone.js маршрутизации

class Router extends Backbone.Router 
    routes: 
    '/a': 'a' 
    '/b': 'b' 

    a: -> alert 'a' 
    b: -> alert 'b' 

app = new Router() 
app.navigate '/a' 
Backbone.history.start() 

код здесь: http://jsfiddle.net/tH2eW/

При использовании, где вы можете увидеть изменение хэш URL: http://jsfiddle.net/tH2eW/show/

Это работает, он запускает код при изменении хеша. Но откуда я могу узнать, была ли это переадресация (нажата ссылка для загрузки новой страницы), или если она была нажата на кнопку «Назад»? Я хочу немного изменить анимацию, если мы вернемся к предыдущему экрану.

Действительно ли URL-адреса, основанные на хэше, поддерживают эту дифференциацию?

+1

У вас нет хорошего ответа, но можете ли вы привязать к hashchange/onpopstate, чтобы отследить свой собственный стек истории и сравнить текущий url с стеком? – glortho

ответ

0

Мы закончили делать то, чем я не очень доволен. Мы кодируем глубину страницы в URL-адресе.

foo.html#!1/index 
foo.html#!2/detail/123 

Тогда мы сможем легко увидеть, идет ли это число вверх или вниз и соответственно оживить. Это работает, но элегантно это не так.

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