Backbone.js: Backbone Koleksiyonundaki bir modelin indeksi nasıl elde edilir?


119

Bir koleksiyondaki bir modelin dizinini bulmanın bir yolu var mı?

Diyelim ki üzerinde çalıştığımız bir modelimiz var, bu model şu anda içinde bulunduğu koleksiyondaki indeksini çıkarabilir mi? Bunu yapmak istiyorum çünkü modele mevcut hedefin üstünde veya altında erişmek istiyorum.

Başka bir deyişle, şöyle bir şey var:

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

Verilerim iç içe geçmiş bir küme olduğundan "lft" veya "rgt" sütunlarında arama yapabilirim, ancak Backbone bu bilgiye zaten sahipse tekerleği yeniden icat etmek istemedim.

Yanıtlar:


201

evet, omurga, koleksiyonlar indexOfüzerinde bir yöntem de dahil olmak üzere modeller ve koleksiyonlardaki birçok alt çekirdek.js yöntemine erişim sağlar . aynı zamanda atsizin gösterdiğiniz gibi bir yöntem sağlar .

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

2
Netleştirdiğiniz için teşekkürler! Biliyorsunuz, üye açıkça şu belgelerde listelenirse harika olurdu ....collectionModel
aaaidan

4
Bir initializegörüşme sırasında bunu çalıştıramıyorum . Bunu nasıl çalıştıracağım hakkında bir fikrin var mı?
Aakil Fernandes

Bu da benden bir döngü için. 'indexOf', sol taraftaki menüde Koleksiyonlar> Alt Çizgi Yöntemleri altına yerleştirilmiştir, bu nedenle açıkça görülmez.
Jeffpowrs

@Jeffpowrs Bu da tuhaftır, çünkü altçizgi belgelerinde indexOf bir dizi işlevidir, oysa başka bir dizi işlevi olan findIndex koleksiyonlarla çalışmaz.
Joshua Taylor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.