2011-09-19 103 views
115

有没有办法在集合中找到模型的索引?Backbone.js:如何获取Backbone集合中模型的索引?

假设在一个视图中我们有一个我们正在处理的模型,那么这个模型能够将它的索引吐出它当前所在的集合吗?我想这样做是因为我想访问当前目标上方或下方的模型。

换句话说就是有一样的东西:

index = this.model.index 
modelAbove = this.collection.at(index-1) 

我的数据是一组嵌套的,所以我可以做的“LFT”或“RGT”列的搜索,但我不想如果骨干已经有这个信息可用,重新发明轮子。

回答

196

是的,backbone可以访问模型和集合上的许多underscore.js方法,包括集合上的indexOf方法。它还提供了一个如您所示的at方法。

var index = this.collection.indexOf(this.model); 
var modelAbove = this.collection.at(index-1); 
+9

太棒了!感觉有点尴尬,我没有想到indexOf。猜猜它会显示我知道多少。 :) 谢谢你,先生! –

+2

感谢您解决这个问题!你知道,如果'.collection'成员在'Model'的文档中明确列出的话,这将是非常棒的...... – aaaidan

+4

在'initialize'调用期间我无法得到这个工作。任何想法我怎么能做到这一点? –

相关问题