没有让这个骨干路由器工作

时间:2012-03-17 04:52:07

标签: javascript backbone.js

尝试让最简单的骨干路由器工作,看看我是否喜欢它的工作方式。我能够让模型工作,所以我认为它正确加载但是当我使用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>

2 个答案:

答案 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'
});