【问题标题】:Rails Backbone App Showing Nothing -- Including ErrorsRails Backbone 应用程序什么也没显示——包括错误
【发布时间】:2012-11-21 19:53:42
【问题描述】:

我一直在研究thoughtbot 的 Learn Backbone.js on Rails,我什至无法让开始的测试应用程序工作,但我在控制台中也没有收到任何 Javascript 错误。

这是我的任务 index.haml 文件

- content_for :javascript do
  - javascript_tag do
    ExampleApp.initialize({ tasks: <%== @tasks.to_json %> });

我的初始化文件:

var ExampleApp = {
  Models: {},
  Collections: {},
  Views: {},
  Routers: {},
  initialize: function() {
    var tasks = new ExampleApp.Collections.Tasks(data.tasks);
    new ExampleApp.Routers.Tasks({ tasks: tasks });
    Backbone.history.start();
  }
};

模型/task.js

var Task = Backbone.Model.extend({});

集合/tasks.js

var Tasks = Backbone.Collection.extend({
    model: Task,
    url: '/tasks'
});

路由器/tasks.js

ExampleApp.Routers.Tasks = Backbone.Router.extend({
    routes: {
        "": "index"
    },

    index: function() {
        alert('test');
        // var view = new ExampleApp.Views.TaskIndex({ collection: ExampleApp.tasks });
        // $('body').html(view.render().$el);
    }
});

这是我正在调用所有文件的证据(我认为):

<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/underscore.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support/support.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support/composite_view.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support/swapping_router.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support.js?body=1" type="text/javascript"></script>
<script src="/assets/example_app.js?body=1" type="text/javascript"></script>
<script src="/assets/easing.js?body=1" type="text/javascript"></script>
<script src="/assets/modernizr.js?body=1" type="text/javascript"></script>
<script src="/assets/models/task.js?body=1" type="text/javascript"></script>
<script src="/assets/collections/tasks.js?body=1" type="text/javascript"></script>
<script src="/assets/views/task_view.js?body=1" type="text/javascript"></script>
<script src="/assets/views/tasks.js?body=1" type="text/javascript"></script>
<script src="/assets/views/tasks_index.js?body=1" type="text/javascript"></script>
<script src="/assets/routers/tasks.js?body=1" type="text/javascript"></script>
<script src="/assets/tasks/index.js?body=1" type="text/javascript"></script>
<script src="/assets/tasks/task.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>

有什么想法吗?我对 Rails 和 Backbone 都很陌生,所以我不确定错误出在哪里,控制台也没有帮助我。谢谢!

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-3 backbone.js


    【解决方案1】:

    查看源代码时是否看到ExampleApp.initialize 代码?

    您需要在布局中的某处有一个&lt;%= yield :javascript %&gt; 才能使此示例正常工作。

    【讨论】:

    • 太棒了!现在我至少遇到了错误......但错误是数据没有定义,尽管它显然在我看来,对吧?
    • 哦,好吧,那是我的错。我半恢复到原来的程序,但它仍然引用了半完整的代码。这行得通。谢谢!
    【解决方案2】:

    按照以下结构让主干正常工作。

    <!DOCTYPE html>
    <html>
    <head>
      <title>Blog2</title>
      <%= stylesheet_link_tag    "application" %>
      <%= javascript_include_tag "application" %>
      <%= csrf_meta_tags %>
    </head>
    <body>
    
    <%= yield %>
    
    </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多