尝试让最简单的骨干路由器工作,看看我是否喜欢它的工作方式。我能够让模型工作,所以我认为它正确加载但是当我使用http://localhost:3000/xxx#testindex访问时,没有任何反应。
编辑1
我以为没有错误,但现在我得到了h is not a function
。嗯......我有点难过。
我做错了什么? THX
<html>
<head>
<script src='/assets/underscore.js'></script>
<script src='/assets/backbone.js'></script>
</head>
<body>
<script>
var PageRouter=Backbone.Router.extend({
routes:{
"testindex": "index"
},
index: function(){ alert("I am here in index")}
});
window.onload=function(){
// alert("this loaded");
var app_router = new PageRouter;
Backbone.history.start();
}
</script>
<a href="#testindex">Activate route</a>
</body>
</html>
答案 0 :(得分:4)
Backbone取决于jQuery or Zepto:
对于RESTful持久性,历史支持通过Backbone.Router 和DOM操作与Backbone.View,包括json2.js,以及jQuery(&gt; 1.4.2)或Zepto。
强调我的。你忘了包含jQuery或Zepto,这就是你的“h不是函数”错误的来源。既然你可能会使用jQuery,那么你应该使用$(function() { ... })
而不是旧学校window.onload
。
一旦你对这些东西进行排序,它就可以正常工作:http://jsfiddle.net/ambiguous/3XUxS/
答案 1 :(得分:0)
您可以在致电history.start
时尝试分配root
:
Backbone.history.start({
root: '/xxx'
});