Backbone:Collection 不会重置
Backbone: Collection Won't Reset
我正在尝试 .reset()
清除我的 collection
,然后调用 .fetch()
以检索该页面的新数据。
但由于某些原因,当我导航到另一个页面时,我的 collection
没有被重置并获取新数据。当我手动重新加载页面时,它只会重置 collection 并获取新数据。
class ProjectPostItemsView extends Backbone.View
template: JST['project_post_items.ejs']
posts_item_views: []
initialize: ->
super()
@listenTo( @collection, 'add', @displayPostItem )
@collection.reset().fetch(add: true)
displayPostItem: (project) ->
view = new ProjectPostItemView(model: project)
@posts_item_views.push( view.on('render', =>
@$('.post-items').append(view.$('>'))) )
render: (options) ->
super(options)
我是 Backbone 的新手,所以我不确定我是否正确处理了这个问题。我做错了什么?
感谢任何帮助。提前致谢!
集合的 reset
函数不 return 集合对象,因此您不能链接 reset
和 fetch
。将initialize
函数的最后一行改为两行:
@collection.reset()
@collection.fetch()
旁注:没有理由将 {add: true}
传递给 fetch
。任何进入该集合的新模型都会自动触发您正在侦听的 "add" 事件。
与其在获取之前调用重置,更好的方法是使用:
collection.fetch({reset: true});
根据 Backbonejs 文档,
"When the model data returns from the server, it uses set to (intelligently) merge the fetched models, unless you pass {reset: true}, in which case the collection will be (efficiently) reset."
http://backbonejs.org/#Collection-fetch
我正在尝试 .reset()
清除我的 collection
,然后调用 .fetch()
以检索该页面的新数据。
但由于某些原因,当我导航到另一个页面时,我的 collection
没有被重置并获取新数据。当我手动重新加载页面时,它只会重置 collection 并获取新数据。
class ProjectPostItemsView extends Backbone.View
template: JST['project_post_items.ejs']
posts_item_views: []
initialize: ->
super()
@listenTo( @collection, 'add', @displayPostItem )
@collection.reset().fetch(add: true)
displayPostItem: (project) ->
view = new ProjectPostItemView(model: project)
@posts_item_views.push( view.on('render', =>
@$('.post-items').append(view.$('>'))) )
render: (options) ->
super(options)
我是 Backbone 的新手,所以我不确定我是否正确处理了这个问题。我做错了什么?
感谢任何帮助。提前致谢!
集合的 reset
函数不 return 集合对象,因此您不能链接 reset
和 fetch
。将initialize
函数的最后一行改为两行:
@collection.reset()
@collection.fetch()
旁注:没有理由将 {add: true}
传递给 fetch
。任何进入该集合的新模型都会自动触发您正在侦听的 "add" 事件。
与其在获取之前调用重置,更好的方法是使用:
collection.fetch({reset: true});
根据 Backbonejs 文档,
"When the model data returns from the server, it uses set to (intelligently) merge the fetched models, unless you pass {reset: true}, in which case the collection will be (efficiently) reset."
http://backbonejs.org/#Collection-fetch