【发布时间】:2015-08-23 14:40:45
【问题描述】:
我正在开发一个示例应用程序,它使用 Ruby on Rails 作为服务器后端,使用 Backbone.Marionette 作为客户端。主要功能是“订购小部件”的表单。我正在使用backbone-forms 创建表单。奇怪的是,一旦我提交表单并将模型保存到 Rails 后端,浏览器会自动重定向到根 url,所有表单参数都作为 URL 参数(例如http://localhost:3000/?quantity=4&color=red&needed_by=2015-06-15T04%3A00%3A00.000Z&kind=Widget+Pro)。此重定向提示 Rails 获取控制器上的 #index 方法(这是空白表单,因为这是应用程序的唯一功能)。
对于我的一生,我找不到是什么原因造成的。我不知道它是骨干、木偶还是骨干形式。我既不会阻止它,也不会至少理解它足以让它做我想做的事。
如果有帮助,下面是生成表单、等待提交、提交 Backbone.Model,然后将其保存到 Rails 后端的代码:
@WidgetApp.module "Widget.Create", (Create, App, Backbone, Marionette, $, _) ->
# VIEW
class Create.Widget extends Marionette.ItemView
template: "create_widget"
# Controller
class Create.Controller extends Marionette.Controller
initialize: ->
widget = App.request "new:widget:entity"
# newView = new Create.Widget
# App.mainRegion.show newView
form = new Backbone.Form(
template: _.template($('#formTemplate').html())
model: widget
)
App.mainRegion.show(form.render())
# Run validation before submitting
form.on 'submit', (event) ->
errs = form.commit({ validate: true })
if errs
console.log errs
event.preventDefault()
widget.save()
【问题讨论】:
标签: javascript ruby-on-rails forms backbone.js marionette