【发布时间】:2014-05-26 08:05:54
【问题描述】:
我最近在摆弄 Backbone.js,我得到了一切工作(模型/视图/事件/集合),除了路由器。这是我的 js/router/test.js 文件。
var Router = Backbone.Router.extend({
routes: {
'' : 'index',
'projects/:id' : 'show'
},
start: function() {
Backbone.history.start({ pushState : true });
},
index: function() {
alert('index');
},
show: function(id) {
alert(id);
}
});
var router = new Router();
router.start();
这是我的 test.html 文件。
<!DOCTYPE html>
<html lang="en">
<head>
<title> sup </title>
</head>
<body>
<p> hello </p>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <!-- jQuery -->
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min.js"> </script> <!-- underscore.js -->
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"> </script> <!-- backbone.js -->
<script src="js/routers/test.js"></script>
</body>
</html>
如果我在初始化中放置一个警报('Hi!'):在我的路由器中,警报会正确弹出。我正在导航到file:///Users/myname/Projects/backbone/test.html 作为基本页面。我应该在某处设置 urlRoot 吗?任何帮助表示赞赏。
【问题讨论】:
-
您是否尝试过通过本地 Web 服务器运行它?
file://URL 的行为完全不同。 -
这就是问题所在。我必须通过我的 ~/Sites 文件夹(OS X 10.9)提供文件并配置 + 启动 Apache。