骨干集合获取不更新@ collection.length
问题描述:
我获取集合的前15个记录,并在单击按钮后为同一集合获取另外15个记录。第二次后,集合的长度是15而不是30.即使正在加载15个新记录,并且'add'事件完美工作。骨干集合获取不更新@ collection.length
代码的第一时间:
@collection.fetch
data: @filter
update: true
success: =>
@onSuccessCollection()
代码的第二时间:
loadMore: ->
@filter.skip = @collection.length
@collection.fetch
update: true
data: @filter,
success: =>
@onSuccessCollection()
成功回调(返回15第一次和15第二时间而30预计):
onSuccessCollection: ->
console.log 'onCollectionReset: collection.length: ', @collection.length
我使用Backbone 0.9.10
答
您必须将标志remove
设置为false。 “智能升级”有删除标志默认为真,所以当你只取15种型号,您的第一个15被删除(因此长度等于15):
// Smartly update a collection with a change set of models, adding,
// removing, and merging as necessary.
update: function(models, options) {
options = _.extend({add: true, merge: true, remove: true}, options);
认真地容易...非常感谢!完美的作品。 – 2013-04-09 13:06:04
@MichaelKoper最难的部分是从旧版本获取文档:) – Loamhoof 2013-04-09 13:06:46
是的确的...浏览源代码是唯一的方法:) – 2013-04-09 13:17:26