2011-09-19 16 views
115

Czy istnieje sposób na znalezienie indeksu modelu w kolekcji?Backbone.js: Jak uzyskać indeks modelu w kolekcji kręgosłupa?

Załóżmy, że w widoku mamy model, nad którym pracujemy, czy ten model może wypluć jego indeks w kolekcji, z której obecnie korzysta? Chciałbym to zrobić, ponieważ chcę uzyskać dostęp do modelu powyżej lub poniżej bieżącego celu.

Innymi słowy jest tam coś takiego:

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

Moje dane są zagnieżdżone ustawiony, więc mogę po prostu zrobić wyszukiwania na „LFT” lub „RGT” kolumny, ale nie chcą Wymyśl ponownie koło, jeśli Backbone ma już dostępne te informacje.

Odpowiedz

196

Tak, szkielet zapewnia dostęp do wielu metod underscore.js w modelach i kolekcjach, w tym do metody indexOf w kolekcjach. zapewnia również metodę, którą pokazałeś.

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

Genialny! Czułem się trochę zawstydzony, że nie myślałem o indexOf. Chyba to pokazuje, jak mało wiem. :) Dziękuję Panu! –

+2

Dzięki za oczyszczenie! Wiesz, byłoby świetnie, gdyby element '.collection' był jawnie wymieniony w dokumentacji dla' Model' ... – aaaidan

+4

Nie mogę uruchomić tego podczas wywołania 'initialize'. Masz pomysł, jak to zrobić? –

Powiązane problemy