2

このメンバーのグループを選択するための選択ボックスがあるメンバーフォームがあります。

Backbone&Backbone.Marionetteを使用しています。メンバーフォームはMemberModelにバインドされています。選択ボックスのデータは、GroupCollectionから取得されます。MemberModelには、group_idのみが含まれ、GroupCollectionへの参照は含まれません。

現在、この選択ボックスを手動で生成しています(GroupCollectionをフェッチしてから、Javascriptを使用して選択ボックスに追加します)。

Backbone.Marionetteでそれを行うためのより良い方法があるかどうか知りたいです。ListViewとItemViewでできると思いましたが、このフォームはレイアウトではないため、このメンバーフォームに選択ボックスを追加する方法がわかりませんでした。

4

1 に答える 1

5

これを行うにはさまざまな方法があり、CollectionViewを使用できます。CollectionViewtagNameを「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"
  // ...
})

これらの2つの基本的なオプションについて詳しくは、http://lostechies.com/derickbailey/2011/10/11/backbone-js-getting-the-model-for-a-clicked-element/を参照してください。

お役に立てば幸いです。

于 2012-10-20T12:32:41.273 に答える