Backbone.js: ¿Cómo obtener el índice de un modelo en una colección Backbone?


119

¿Hay alguna forma de encontrar el índice de un modelo dentro de una colección?

Digamos que en una vista tenemos un modelo en el que estamos trabajando, ¿podría ese modelo escupir su índice dentro de la colección en la que está actualmente? Me gustaría hacer esto porque quiero acceder al modelo por encima o por debajo del objetivo actual.

En otras palabras, hay algo como:

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

Mis datos son un conjunto anidado, por lo que puedo hacer una búsqueda en las columnas "lft" o "rgt", pero no quería reinventar la rueda si Backbone ya tiene esta información disponible.

Respuestas:


201

sí, backbone proporciona acceso a muchos métodos de underscore.js en modelos y colecciones, incluido un indexOfmétodo en colecciones. también proporciona un atmétodo como el que ha mostrado.

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

2
¡Gracias por aclarar esto! Sabes, sería genial si el .collectionmiembro Model
figurara

4
No puedo hacer que esto funcione durante una initializellamada. ¿Alguna idea de cómo podría hacer que eso funcione?
Aakil Fernandes

Esto a través de mí también por un bucle. 'indexOf' se coloca en Colecciones> Métodos de subrayado en el menú de la izquierda, por lo que no está a la vista.
Jeffpowrs

@Jeffpowrs También es extraño, porque indexOf, en la documentación de subrayado, es una función de matriz, mientras que otra función de matriz, findIndex, no funciona con colecciones.
Joshua Taylor
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.