好的,我原本打算将用户的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()时遇到错误。
答案 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>
如果我的修复程序有任何问题,请纠正我。