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

Man*_* Ha 2 backbone.js marionette

我有一个成员表单,其中有一个选择框用于选择该成员的组.

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

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

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

Der*_*ley 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>
Run Code Online (Sandbox Code Playgroud)

Marionette.ItemView.extend({
  template: "#some-template"
  // ...
})
Run Code Online (Sandbox Code Playgroud)

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

希望有所帮助.