我需要清空一个集合,按顺序删除每个项目。
this.nodes.each(function(node){
this.nodes.remove(node);
}, this);
不起作用,因为在删除每个节点时,它会更改集合的长度。制作一个临时数组,然后迭代它的工作原理。还有更好的方法吗?
答案 0 :(得分:4)
除非您需要this.nodes.reset()
事件,否则请尝试remove
。
否则:
var nodes = this.nodes;
while (nodes.length > 0)
nodes.remove(nodes.at(0));
答案 1 :(得分:2)
清空主干集合的另一种方法:
while ( this.catz.length > 0) this.catz.pop();
答案 2 :(得分:1)
如果您需要在迭代时修改集合,那么使用简单的向后for
来执行此操作:
var count = collection.size();
for (var i = count-1; i > -1; i--) {
collection.remove(collection.at(i));
}
处小提琴
答案 3 :(得分:1)
http://backbonejs.org/#Collection-reset
你可以调用collection.reset();它会清空整个系列。我今天用它了!