如何使用等效的.slice更改backbone.js集合(开始,结束)

时间:2012-01-28 22:25:26

标签: backbone.js

My Backbone Collection在fetch()上收到30个模型。

我试过了

   newColl=origColl.first(2);

返回一个新的Collection。当我尝试传递给View时,它将无法工作。

是否有使用underscore.js方法执行此操作?

2 个答案:

答案 0 :(得分:2)

您的代码无效,因为first(n)会在您的视图期待收集时返回数组。你需要像这样包装它:

var newColl = new Backbone.Collection(origColl.first(2));

对于常规“切片”,您可以将find_.range结合使用:

var newColl = new Backbone.Collection(origColl.find(_.range(start, end));

当然,tou可以使用您自己的集合类而不是Backbone.Collection

请参阅http://documentcloud.github.com/underscore/#rangerange的文档。

答案 1 :(得分:1)

我不确定我是否正确理解了您的问题,但以下代码段可能就是您要找的内容。

var model = origColl.at(2);
var models = [model];
var newColl = new YourCollection(models);

newColl 现在将是一个新集合,其中包含原始集合第2位的模型。这个例子比我写的更冗长,但它可能会让你更清楚。