2011-09-19 121 views
115

有沒有辦法在集合中找到模型的索引?Backbone.js:如何獲取Backbone集合中模型的索引?

假設在一個視圖中我們有一個我們正在處理的模型,那麼這個模型能夠將它的索引吐出它當前所在的集合嗎?我想這樣做是因爲我想訪問當前目標上方或下方的模型。

換句話說就是有一樣的東西:

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

我的數據是一組嵌套的,所以我可以做的「LFT」或「RGT」列的搜索,但我不想如果骨幹已經有這個信息可用,重新發明輪子。

回答

196

是的,backbone可以訪問模型和集合上的許多underscore.js方法,包括集合上的indexOf方法。它還提供了一個如您所示的at方法。

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

太棒了!感覺有點尷尬,我沒有想到indexOf。猜猜它會顯示我知道多少。 :) 謝謝你,先生! –

+2

感謝您解決這個問題!你知道,如果'.collection'成員在'Model'的文檔中明確列出的話,這將是非常棒的...... – aaaidan

+4

在'initialize'調用期間我無法得到這個工作。任何想法我怎麼能做到這一點? –

相關問題