我获取了一个集合的前15条记录,点击一个按钮后,我获取了同一集合的另外15条记录。在第二次之后,集合的长度为15而不是30.即使正在加载15条新记录并且“添加”事件也能完美运行。
第一次代码:
@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
答案 0 :(得分:2)
您必须将标记remove
设置为false。 “智能更新”将删除标志默认设置为true,因此当您仅提取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);