Backbone.js:如何获取Backbone集合中模型的索引?


119

有没有一种方法可以在集合中找到模型的索引?

假设某个视图中有一个我们正在处理的模型,那么该模型可以将其索引插入到当前位于其中的集合中吗?我想这样做是因为我想访问当前目标之上或之下的模型。

换句话说,是这样的:

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

我的数据是一个嵌套集,因此我只能在“ lft”或“ rgt”列上进行搜索,但是如果Backbone已经有了此信息,我就不想重新发明轮子。

Answers:


201

是的,骨干网提供对模型和集合上许多underscore.js方法的访问,包括集合上的indexOf方法。它还提供了at您所显示的方法。

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

2
感谢您清理此问题!你知道的,如果在文档中明确列出该成员的话,那就太好.collectionModel
aaaidan

4
我无法在initialize通话中使用它。知道我该怎么做吗?
Aakil Fernandes 2014年

这也通过我一个循环。“ indexOf”位于左侧菜单中的“集合”>“下划线方法”下,因此不会一目了然。
Jeffpowrs 2014年

@Jeffpowrs这也很奇怪,因为下划线文档中的indexOf是一个数组函数,而另一个数组函数findIndex不适用于集合。
约书亚·泰勒
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.