backbone.js + rails + firebug TypeError:this.model未定义

时间:2013-05-23 19:34:12

标签: ruby-on-rails backbone.js firebug router typeerror

好的,我原本打算将用户的NewView渲染到我的根页面。我已经到了可以看到表单的地步,但当我填写它并单击“创建用户”时,我收到此错误:

TypeError: this.model is undefined

$(this.el).html(this.template(this.model.toJSON()));

以下是相关代码:

index.html.erb

<div id="container">Loading...</div>

<script type="text/javascript">
  $(function() {
    window.newView = new Example.Views.Users.NewView({model: <%= @users.to_json.html_safe -%>,collection: new Example.Collections.UsersCollection()});
    window.router = new Example.Routers.UsersRouter({users: <%= @users.to_json.html_safe -%>});
    $('body').html(newView.render().$el);
    Backbone.history.start();
  });
</script>

这是我今天发布的一个问题,它引出了我的问题......阅读评论应该会有所帮助!

ReferenceError: users is not defined rails + backbone + firebug

我觉得这与我创建两个窗口的事实有关? “window.newView”和“window.router”。

需要有一个Backbone.history.start()的路由器才能工作......对吗?这就是为什么我首先添加路由器线...因为我在Backbone.history.start()时遇到错误。

1 个答案:

答案 0 :(得分:0)

我认为这有效,我将“pushState:true”传递给start方法...至少不会抛出任何错误...我可以通过注册,显示和销毁用户...但是,当在索引页面上创建用户时,它不会重定向到显示页面。

<div id="container">Loading...</div>

<script type="text/javascript">
  $(function() {
    window.newView = new Example.Views.Users.NewView({model: <%= @users.to_json.html_safe -%>,collection: new Example.Collections.UsersCollection()});
    window.router = new Example.Routers.UsersRouter({users: <%= @users.to_json.html_safe -%>});
    $('body').html(newView.render().$el);
    Backbone.history.start({pushState: true});
  });
</script>

如果我的修复程序有任何问题,请纠正我。