我有一个会员表格,其中有一个选择框用于选择该会员的一组。
我正在使用Backbone& Backbone.Marionette。成员表单绑定到MemberModel。选择框的数据来自GroupCollection。 MemberModel仅包含group_id,而不包含对GroupCollection的任何引用。
我现在手动生成此选择框(获取GroupCollection,然后使用Javascript添加到选择框)。
我想知道Backbone.Marionette是否有更好的方法。我认为可以使用ListView和ItemView完成,但我不知道如何将选择框添加到此成员表单,因为此表单不是布局。
答案 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/
希望有所帮助。