路由器显然在Backbone.js中无所事事

时间:2014-05-26 08:05:54

标签: javascript backbone.js

我最近在摆弄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吗?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

问题在于Backbone.js使用file:/// URL的行为不同,需要有一个服务文件的网络服务器。

解决方案是将我的文件移动到〜/ Sites文件夹中,然后配置并启动Apache。我按照指南进行了操作:http://www.coolestguidesontheplanet.com/downtown/get-apache-mysql-php-and-phpmyadmin-working-osx-109-mavericks