Backbone.js:バックボーンコレクションのモデルのインデックスを取得する方法


119

コレクション内のモデルのインデックスを見つける方法はありますか?

ビューで、現在作業中のモデルがあるとしましょう。そのモデルは、現在内部にあるコレクション内のインデックスを吐き出すことができますか?現在のターゲットの上または下のモデルにアクセスしたいので、これを実行します。

つまり、次のようなものがあります。

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

私のデータはネストされたセットなので、「lft」列または「rgt」列で検索を実行できますが、Backboneがすでにこの情報を利用できる場合は、ホイールを再発明したくありませんでした。

回答:


201

はい、バックボーンは、コレクションのindexOfメソッドを含む、モデルとコレクションの多くのunderscore.jsメソッドへのアクセスを提供します。それはまたatあなたが示したような方法を提供します。

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

2
これを片付けてくれてありがとう!あなたは、それは次のようになり、知っているので、偉大な場合は.collectionメンバーが明示的にするためにドキュメントに記載されていたModel...
aaaidan

4
initialize通話中にこれを機能させることができません。どのように私がそれを機能させることができるか考えていますか?
アーキルフェルナンデス2014

これもループのために私を通して。'indexOf'は、左側のメニューの[コレクション]> [アンダースコアメソッド]の下に配置されているため、はっきりとは見えません。
Jeffpowrs 2014

@JeffpowrsアンダースコアドキュメントのindexOfは配列関数ですが、別の配列関数findIndexはコレクションでは機能しないため、これも奇妙です。
Joshua Taylor
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.