我获取集合的前 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
最佳答案
您必须将标记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);
关于javascript - 主干集合获取不会更新@collection.length,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15899244/