我正在评估backbone.js、backbone-forms和Rails,我有一些问题……
我有一个视图,我在其中创建了一个新模型和一个表单,并且我想用其他html元素来显示这个表单,所以我使用了一个模板。
expedients_new.js.coffee
------------------------
class Globalbackbone.Views.ExpedientsNew extends Backbone.View
template: JST['expedients/new']
render: ->
@form = new Backbone.Form({
model: @model
}).render();
console.log(@model.procedencia)
console.log(@form)
$(@el).html(@template(expedient: @model, form: @form ))
this这个视图使用了一个模板,在这个模板中,我想在那里呈现表单,但是我不知道怎么做……
new.jst.eco
-----------
<h1>BackBones with GlobalWeb</h1>
<h2>Adding New Expedient</h2>
<%=@expedient.date%>
<hr>
<%=@form.el%>
<hr>
<%=@form%>提前谢谢你,
问候
编辑
当前浏览器输出的表单是: object HTMLFormElement
发布于 2012-11-25 14:17:47
usage instructions表示@form将成为主干视图:
var form = new Backbone.Form({
model: user
}).render();这意味着@form.el将是一个需要插入到DOM中的DOM元素:
$('body').append(form.el);如果你看一下the source,你会发现Backbone.Form是一个Backbone.View子类:
var Form = (function() {
return Backbone.View.extend({
//...您的代码试图将@form视为包含HTML的字符串:
<%=@form%>因此,您最终得到了DOM元素的标准字符串版本:[object HTMLFormElement]。
我认为如果你在你的视图中有这样的东西,你会更幸运:
@$el.append(@template(expedient: @model))
@$el.append(@form.el)在您的模板中:
<h1>BackBones with GlobalWeb</h1>
<h2>Adding New Expedient</h2>
<%=@expedient.date%>
<hr>那么你的表单应该出现在<hr>之后。
https://stackoverflow.com/questions/13531657
复制相似问题