2

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

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

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

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

4

1 回答 1

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/

希望有帮助。

于 2012-10-20T12:32:41.273 回答