我的BackboneJS“列表项视图”定义如下:
class TagListView extends Backbone.View
el:"#tags"
render: =>
@collection = new TagCollection
@collection.fetch_data
order_by : "name"
, =>
@on_success()
on_success: =>
view_arr = []
@collection.each (tag_model) =>
tag = new TagView {model: tag_model}
view_arr.push tag.render().el
@$el.empty().append view_arr
我如何将其更改为MarionetteJS集合视图?我尝试了以下内容,它似乎不起作用?
class TagListView extends Marionette.CollectionView
el:"#tags"
itemView:TagView
onBeforeRender: =>
@collection = new TagCollection
@collection.fetch_data
order_by : "name"
, =>
@render()
我只是删除on_sccess()方法,因为我的理解是CollectionView将通过其render方法呈现其项目?
答案 0 :(得分:1)
你是对的。
The collection view binds to the "add", "remove" and "reset" events of the collection that is specified.
一旦发生任何这些事件,集合视图将自动更新视图,无论是部分还是内部。
您可能想知道的另一件事是在版本1.0.0中,当集合执行提取时,默认情况下它不会再触发reset
事件。要获得旧行为,请传递{reset: true}
。