首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在模板中从视图呈现窗体

在模板中从视图呈现窗体
EN

Stack Overflow用户
提问于 2012-11-23 23:08:35
回答 1查看 405关注 0票数 0

我正在评估backbone.js、backbone-forms和Rails,我有一些问题……

我有一个视图,我在其中创建了一个新模型和一个表单,并且我想用其他html元素来显示这个表单,所以我使用了一个模板。

代码语言:javascript
复制
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

这个视图使用了一个模板,在这个模板中,我想在那里呈现表单,但是我不知道怎么做……

代码语言:javascript
复制
new.jst.eco
-----------

<h1>BackBones with GlobalWeb</h1>

<h2>Adding New Expedient</h2>

<%=@expedient.date%>
<hr>
<%=@form.el%>
<hr>
<%=@form%>

提前谢谢你,

问候

编辑

当前浏览器输出的表单是: object HTMLFormElement

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-25 14:17:47

usage instructions表示@form将成为主干视图:

代码语言:javascript
复制
var form = new Backbone.Form({
    model: user
}).render();

这意味着@form.el将是一个需要插入到DOM中的DOM元素:

代码语言:javascript
复制
$('body').append(form.el);

如果你看一下the source,你会发现Backbone.Form是一个Backbone.View子类:

代码语言:javascript
复制
var Form = (function() {
  return Backbone.View.extend({
    //...

您的代码试图将@form视为包含HTML的字符串:

代码语言:javascript
复制
<%=@form%>

因此,您最终得到了DOM元素的标准字符串版本:[object HTMLFormElement]

我认为如果你在你的视图中有这样的东西,你会更幸运:

代码语言:javascript
复制
@$el.append(@template(expedient: @model))
@$el.append(@form.el)

在您的模板中:

代码语言:javascript
复制
<h1>BackBones with GlobalWeb</h1>

<h2>Adding New Expedient</h2>

<%=@expedient.date%>
<hr>

那么你的表单应该出现在<hr>之后。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13531657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档