如何在Backbone.Marionette中向表单添加集合绑定选择框?

时间:2012-10-18 13:35:04

标签: backbone.js marionette

我有一个会员表格,其中有一个选择框用于选择该会员的一组。

我正在使用Backbone& Backbone.Marionette。成员表单绑定到MemberModel。选择框的数据来自GroupCollection。 MemberModel仅包含group_id,而不包含对GroupCollection的任何引用。

我现在手动生成此选择框(获取GroupCollection,然后使用Javascript添加到选择框)。

我想知道Backbone.Marionette是否有更好的方法。我认为可以使用ListView和ItemView完成,但我不知道如何将选择框添加到此成员表单,因为此表单不是布局。

1 个答案:

答案 0 :(得分:5)

有许多不同的方法可以完成,并且可以使用CollectionView。您必须将CollectionView的tagName设置为“select”,然后与CollectionView一起使用的itemView将tagName设置为“option”。

更简单的想法可能是使用自己的ItemView,将您的集合作为数据源。您可以使用带有ItemView的集合没问题,只需在模板中执行循环。

使用underscore.js模板:

<script type='text/template' id='some-template'>
  <select>
    <%= _.each(items, function(item){ %>
    <option value="<%= item.value %>"><%= item.name %>
    <%= }) %>
  </select>
</script>

Marionette.ItemView.extend({
  template: "#some-template"
  // ...
})

我在这里更详细地介绍了这两个基本选项:http://lostechies.com/derickbailey/2011/10/11/backbone-js-getting-the-model-for-a-clicked-element/

希望有所帮助。