Я довольно новичок в backbone js, и у меня возникли проблемы с работой функции pushstate моего приложения. Вот пример моего маршрута:
var TodoRouter = new (Backbone.Router.extend({
routes: {
"": "index",
"item/add": "AddTodoItem",
"list/add": "AddTodoList"
},
AddTodoItem: function() {
//e.preventDefault();
alert("add new item");
},
AddTodoList: function(e) {
//e.preventDefault();
alert("add new list");
},
Start: function(){
//note: my directory structure is localhost/playground/todo/
Backbone.history.start({pushState: true, root: "/playground/todo/"});
},
initalize: function(){
},
index: function(){
var todoListView = new TodoListView({ collection: TodoItemCollection });
}
}));
Вот как я называю свой маршрут:
$(function() {
TodoRouter.Start();
});
И, наконец, вот как я называю ссылку:
<a href="#list/add" id="newList">New List</a>
Проблема, с которой я сталкиваюсь, заключается в том, что когда я вызываю ссылку, страница остается прежней, без предупреждений и в браузере отображается:
http://localhost/playground/todo/#list/add
Теперь самое интересное, если я обновлю страницу, URL-адрес станет таким:
http://localhost/playground/todo/list/add
и я получаю предупреждение. Так что у меня такое чувство, что я где-то упускаю ключевой момент. Любая помощь будет принята с благодарностью!