【发布时间】:2013-10-30 19:01:43
【问题描述】:
The Backbone.Collection object proxies Underscore's Collection.shuffle() 所以所有 Backbone 集合都有方法 shuffle()。
Underscore 的 shuffle 工作正常:
如果我只想随机播放下划线集合中的最后 5 个项目,可以使用 slice():
您还可以对 Backbone 集合进行切片和洗牌:
但是对于从数据库中多次获取 fetches 项目的主干集合,我似乎无法仅对最后一次 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
似乎在延迟对象内部进行排序不会以任何方式改变外部集合。
那么,我如何才能仅对 Backbone 集合末尾的 n 项进行排序?
【问题讨论】:
-
在 fetch 的成功回调中打乱数据怎么样?
-
所以你想随机或排序?
-
@Jack 你是说示例中的
.fetch().done回调吗? -
@Brian 我看到你解决了你的问题,我的意思是向fetch 调用传递一个成功回调,类似于
.fetch({ success: function (collection, response, options) {...。
标签: backbone.js