2012-03-29 3 views
4

Я хотел бы назвать Backbone's router.navigate и обновить хэш-фрагмент, даже в браузерах, поддерживающих API истории. Это возможно?backbone.js - вызов router.navigate, но только обновление хэша?

Например, у меня есть вызов:

router.navigate("page/" + pageNumber); 

я хотел бы, чтобы это пойти #page/14 даже в браузерах, поддерживающих Архивная API и которые теоретически способны к навигации /page/14.

Есть ли опция, которую я могу задать, чтобы назвать это? В качестве альтернативы, я думаю, я могу просто обновить location.hash вручную, но я предпочел бы делать что-то через Backbone, если это возможно.

Спасибо!

ответ

3

Замена вашего Backbone.History.start() с этим:

Backbone.History.start({pushState : false}); 

Сделает приложение Магистраль с хэшей. Но вам нужно добавить «/ #/page/14» на каждый href ваших ссылок, чтобы сделать эту работу!

+0

Спасибо, так что это должна быть настройка на уровне приложения, я не могу установить предпочтение update-hash только для отдельных событий? – Richard

+0

В этом режиме катализатор использует «/ # /» для маршрутизации ... если вы передаете любой другой «/ page/1234 /» (без # в начале), он переходит непосредственно в ваш браузер и загружает страницу в качестве нового запроса. Если вы хотите направить что-то на маршрутизатор, вам нужно использовать «#» перед ним. – drinchev