Backbone.Collection 对象代理了UnderscoreCollection.shuffle()
,因此所有 Backbone 集合都有方法shuffle()
。
下划线的洗牌工作正常:
如果我只想打乱下划线集合中的最后 5 个项目,可以通过以下方式完成slice()
:
您还可以对 Backbone 集合进行切片和洗牌:
fetch
但是对于从数据库中多次获取项目的主干集合,我似乎不能只对上次fetch
调用获取的项目进行洗牌,因为集合中的项目似乎是按它们被获取的顺序排序的,即使在之后一个切片洗牌。
a.models // say, [id:1, id:2, id:3]
a.fetch().done(function (data) {
return data = _.shuffle(data)
})
a.models // [id:1, id:2, id:3, id:4, id:5, id:6], still sorted
似乎在延迟对象内部进行排序不会以任何方式改变外部集合。
那么,我怎样才能只n
对 Backbone Collection 末尾的项目进行排序呢?