我最近在摆弄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>
如果我在初始化时发出警告(&#39;嗨!&#39;):在我的路由器中,警报会正确弹出。我正在导航到file:///Users/myname/Projects/backbone/test.html
作为基页。我应该在某个地方设置urlRoot吗?任何帮助表示赞赏。
答案 0 :(得分:0)
问题在于Backbone.js使用file:/// URL的行为不同,需要有一个服务文件的网络服务器。
解决方案是将我的文件移动到〜/ Sites文件夹中,然后配置并启动Apache。我按照指南进行了操作:http://www.coolestguidesontheplanet.com/downtown/get-apache-mysql-php-and-phpmyadmin-working-osx-109-mavericks。