My Backbone Collection在fetch()上收到30个模型。
我试过了
newColl=origColl.first(2);
返回一个新的Collection。当我尝试传递给View时,它将无法工作。
是否有使用underscore.js方法执行此操作?
答案 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/#range上range
的文档。
答案 1 :(得分:1)
我不确定我是否正确理解了您的问题,但以下代码段可能就是您要找的内容。
var model = origColl.at(2);
var models = [model];
var newColl = new YourCollection(models);
newColl 现在将是一个新集合,其中包含原始集合第2位的模型。这个例子比我写的更冗长,但它可能会让你更清楚。