【发布时间】:2014-02-28 01:06:01
【问题描述】:
我有一个 API 资源,它为我提供了一个 users 列表,每个列表都有几个 items。层次结构是这样的:
- users
- user
- items
- item
- item
- item
- user
- items
- item
- item
- item
我想在单个页面上显示users 的列表,每个user 条目也在页面上显示其每个items。
当单击这些items 中的任何一个时,它应该设置一个可通过整个users 集合访问的chosen 属性。
我很难让item 点击信息重新冒泡。我目前的实现是在创建一个单独的items集合才能呈现视图,但是我丢失了与其原始user model的连接,所以我在选择item时无法通知它。 p >
我的观点结构如下:
class List.Item extends Marionette.ItemView
template: "path/to/template"
events:
"click" : "choose"
choose: (e) ->
# what to do?
class List.User extends Marionette.CompositeView
collection: @collection
template: "path/to/template"
itemView: List.Item
itemViewContainer: "span"
initialize: ->
@collection = new App.Entities.Items(@model.get("items"), parent: @)
events:
"click a" : "toggleChoose"
@include "Chooseable"
class List.Users extends Marionette.CollectionView
itemView: List.User
有没有更好的方法来构建这些集合或视图,或者有没有办法将信息从List.Item 视图传递到父视图List.User,然后传递到users 集合?
编辑
我尝试过骨干关系,但它似乎并没有完全满足我的需求。如果我在这里错了,请纠正我。
【问题讨论】:
标签: backbone.js marionette backbone.js-collections