我对主干 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
我得到了警报。所以我有一种感觉,我在某处遗漏了一个关键点。任何帮助将不胜感激!