Магистральные маршруты pushState
Я пытаюсь разобраться с позвоночником.js pushState для изменения хэштегов на красивых url. Используя localhost
, а путь к моему скрипту - http://localhost/test/backbone/test.html
. Но каждый раз щелчок отбрасывает меня к localhost/login
. Что я делаю не так?
var AppRouter = Backbone.Router.extend({
routes: {
"login": "getPost",
"*actions": "defaultRoute"
}
});
var app_router = new AppRouter;
app_router.on('route:getPost', function (id) {
alert( "login" );
});
app_router.on('route:defaultRoute', function (actions) {
alert( actions );
});
app_router.navigate("/login", {trigger: true});
Backbone.history.start({pushState: true, root: '/login/'});
1 ответ:
Вам нужно добавить:
$(document).delegate("a", "click", function(evt) { var href = $(this).attr("href"); var protocol = this.protocol + "//"; if (href.slice(protocol.length) !== protocol && protocol !== 'javascript://' && href.substring(0, 1) !== '#') { evt.preventDefault(); Backbone.history.navigate(href, true); } });
И последние 2 строки должны быть:
app_router.navigate("/login", {trigger: true}); // <- should remove this string Backbone.history.start({pushState: true, root:"test/backbone/test.html"});