Как вызвать события Backbone.Router в Backbone.js?

Маршрутизатор в Backbone.js отвечает за маршрутизацию клиентских страниц и подключение их к действиям и событиям на основе URL-адресов. Но как вызвать изменение URL? Я имею в виду, что единственный способ сделать это - заключить элемент, связанный с маршрутизацией страницы в теге <a>.

Поскольку я связал события mousedown и mouseup с элементом, используемым для маршрутизации, если я поместил его в тег <a>, события mousedown и mouseup определенно станут недействительными, так как это будет иметь конфликт с событием click <a>. Итак, есть ли другие способы сделать маршрутизацию?

Ответ 1

Вы можете использовать Router#navigate:

перейти router.navigate(fragment, [options])

Всякий раз, когда вы достигаете точки в своем приложении, которую хотите сохранить в качестве URL-адреса, вызовите перемещаться, чтобы обновить URL-адрес. Если вы хотите также вызвать функцию маршрута, установите для параметра триггер значение true.

Итак, если ваш маршрутизатор r и вы хотите активировать маршрут для #/some_route, вы можете:

r.navigate('some_route', { trigger: true });

Демо (откройте консоль): http://jsfiddle.net/ambiguous/xkZtB/