Backbone.js 基于某些标准对主干集合视图进行分段
我对和有点陌生,我对如何用一个。假设我有一个约会列表,每个都有约会日期/时间(存储为unix时间戳,但这并不重要) 当我显示这些时,我希望按如下方式显示它们: 今天Backbone.js 基于某些标准对主干集合视图进行分段,backbone.js,marionette,Backbone.js,Marionette,我对和有点陌生,我对如何用一个。假设我有一个约会列表,每个都有约会日期/时间(存储为unix时间戳,但这并不重要) 当我显示这些时,我希望按如下方式显示它们: 今天 会议A(上午10:00) 会议B(上午11:00) 会议C(下午1:00) 。。。还有4个 未来7天 会议D(星期一下午3时) 会议E(星期二下午2时) 。。。还有7个 我正在考虑的方法是在接下来的7天(包括今天)从服务器上提取一个集合,然后对该集合进行两次查看(一次用于今天,一次用于本周)。以下是我正在努力解决的问题:
- 会议A(上午10:00)
- 会议B(上午11:00)
- 会议C(下午1:00)
- 。。。还有4个
- 会议D(星期一下午3时)
- 会议E(星期二下午2时)
- 。。。还有7个
- 好的,Marionette.CollectionView呈现集合中的所有元素。有没有一种简单的方法可以覆盖这种行为,只渲染(比如)3或4个项目
- 我该如何处理。。。还有更多的线?它实际上不是一个模型,但它的数据是从底层集合计算出来的
如果有区别的话,我将使用@SlexAxton的项目作为模板。您可以使用
CompositeView
而不是CollectionView
。因此,您可以定义自己的集合
属性以使用所需的子集,然后可以显示“X更多…”链接
可能是这样的:
EventView = Backbone.Marionette.ItemView.extend
template: 'event'
EventsView = Backbone.Marionette.CompositeView.extend
itemView: EventView
template: 'events'
initialize: (attributes)->
@extractSubset(attributes.collection)
extractSubset: (collection)->
@collection = new EventsCollection(collection.filterByWhatYouWant())
@othersCount = collection.length - @collection.length
appendHtml: (collectionView, itemView)->
collectionView.$('.events').append(itemView.el)
serializeData: ->
othersCount: @othersCount
andAnyOtherThing: 'you need in the template'
也许这将非常适合模板中的逻辑:)你必须做某些事情,即使它不正确。我使用treenode作为
模型和单个模板构建了一个treeview,其中包含logicOh,真棒。我会试一试,然后告诉你。谢谢