Backbone.js如何在Collection中随机播放项目

时间:2013-05-25 23:46:48

标签: backbone.js collections model shuffle

尝试随机化集合中对象的顺序时遇到问题。

这是我尝试过的代码:

console.log(this.collection);
shuffled = this.collection.shuffle();
console.log(shuffled);

这是控制台输出(使用包含3个项目的测试集合):

child {models: Array[3], length: 3, _byId: Object, url: "/myurl/myid", _listenerId: "l7"…}
_byId: Object
_events: Object
_idAttr: "id"
_listenerId: "l7"
length: 3
models: Array[3]
__proto__: Surrogate

[child, child, child]
0: child
1: child
2: child
length: 3
__proto__: Array[0]

正如你所看到的,Collection没有被正确地改组,而是创造了一个充满讨厌的孩子的新的无法使用的对象。

我想要做的就是随机化模型在集合中出现的顺序,然后将其传递给视图进行显示(我正在创建一个名为“randomize”的按钮,需要随机化项目的显示在集合中)。我认为这将是一项简单的任务,但此时我正在考虑创建一个全新的模型并在服务器上进行随机播放。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:8)

console.log(this.collection);
this.collection.reset(this.collection.shuffle(), {silent:true});
console.log(this.collection);