Backbone形式与嵌套模型和自定义模板

时间:2013-06-19 16:48:27

标签: javascript backbone.js underscore.js backbone-forms

我目前正在使用Backbone forms

我目前有一个使用嵌套模型加载的模式。当我尝试使用模板设置样式时,我没有得到预期的结果。

模板类似于以下内容:

<div class="bounding">
  <h2>Title1 </h2>
      <div data-fields="name,type"></div>
      <div data-fields="bedrooms"></div>
  </div>
  <div class="bounding">
      <h2>Title 2</h2>
      <div data-fields="description"></div>
  </div>

卧室在架构中定义为:

bedrooms: {
  type: 'NestedModel',
  model:Bedroom,
  editorAttrs: {
    class: 'bedrooms'
  }
}

这样可以正确显示,而不需要调用自定义模板:

template: _.template($('#formTemplate').html())

,当删除此行时,自定义模板看起来正确

<div data-fields="bedrooms"></div>

有没有办法可以同时使用自定义模板和嵌套模型?嵌套模型没有定义模板,只有添加了模式。

由于

更新:Js Fiddle附加了类似

//  template: _.template($('#formTemplate').html()),
应该切换

以查看工作方式而且看起来不正确

更新:

Tommi Komulainen与他的回答Here非常接近,描述实际上是在第一个界限中,而不是第二个。我该怎么把它移到第二个?

更新2:

我正在调用当前每个嵌套项目的渲染,并在主渲染之后重新注入,如此

form.fields.bedrooms.render();
$('#bedrooms').html(form.fields.bedrooms.el);

这目前正在运作,但并不像是一个“好”的解决方案

2 个答案:

答案 0 :(得分:2)

尝试在整个模板周围添加包装DIV标记;模板需要有一个main包含元素。

答案 1 :(得分:1)

我认为<div data-fields="bedrooms"></div>应该是

<div data-fieldsets="bedrooms"></div>

代替。