【问题标题】:Routers apparently doing nothing locally in Backbone.js路由器显然在 Backbone.js 中本地什么都不做
【发布时间】: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。

标签: javascript backbone.js


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2018-11-08
    • 2017-07-02
    • 1970-01-01
    • 2018-05-28
    • 2018-05-25
    相关资源
    最近更新 更多