Backbone.js: como obter o índice de um modelo em uma coleção de backbone?


119

Existe uma maneira de encontrar o índice de um modelo dentro de uma coleção?

Digamos que, em uma visão, temos um modelo no qual estamos trabalhando, esse modelo poderia cuspir seu índice dentro da coleção em que está atualmente? Gostaria de fazer isso porque desejo acessar o modelo acima ou abaixo do destino atual.

Em outras palavras, existe algo como:

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

Meus dados são um conjunto aninhado para que eu possa fazer uma pesquisa nas colunas "lft" ou "rgt", mas não queria reinventar a roda se o Backbone já tiver essas informações disponíveis.

Respostas:


201

sim, o backbone fornece acesso a muitos métodos underscore.js em modelos e coleções, incluindo um indexOfmétodo em coleções. Ele também fornece um atmétodo como você mostrou.

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

2
Obrigado por esclarecer isso! Você sabe, seria tão grande se o .collectionmembro foi explicitamente listados na documentação para Model...
aaaidan

4
Não consigo fazer isso funcionar durante uma initializeligação. Alguma idéia de como eu poderia fazer isso funcionar?
Aakil Fernandes

Isso através de mim para um loop também. 'indexOf' é colocado em Coleções> Métodos de sublinhado no menu à esquerda, para que não fique à vista.
precisa saber é o seguinte

@Jeffpowrs Também é estranho, porque indexOf, na documentação de sublinhado, é uma função de matriz, enquanto outra função de matriz, findIndex, não funciona com coleções.
Joshua Taylor
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.