2012-02-07 37 views
6

我有一個Backbone集合。我正在使用fetch({add:true})從我的服務器獲取新項目,並將它們添加到集合中。如何獲取通過提取添加到Backbone集合的項目的索引?

我已將偵聽器函數綁定到集合的add事件。我想要這個函數來獲取項目被添加到集合的索引。

Backbone’s documentation for Collection.add說:「如果你是一個回調聽一個集合的"add"事件,options.index會告訴你在哪個模型被添加到集合的索引。」

我已經登錄,似乎論據將其傳遞給控制檯的監聽器功能並查看它們。據我所知,第一個參數是添加的項目,後面是創建的臨時集合對象,以便在從服務器返回時保存它。我似乎沒有使用index屬性的對象。

如何獲取項目添加到集合的索引?

回答

8

對於將來閱讀此內容的人,請注意:從版本0.9.9開始,options.index不再設置。從更新日誌:

爲了提高附加的性能,options.index將不再在add事件回調設置。 collection.indexOf(model)可用於根據需要檢索模型的索引。

+0

偉大的東西,謝謝你添加最新的答案。 – 2013-04-05 09:24:30

+0

+1感謝您對此進行更新。很有幫助。 – 2013-04-18 19:33:49

2

檢查的第三個參數的綁定功能,它應該包含索引屬性

var c=new Backbone.Collection(); 
c.bind("add",function(model,collection,opts){ 
    console.log(opts); 
}); 

c.add({}); 
c.add({}); 

編輯:我只是檢查骨幹0.5.3和它似乎options.index僅在版本0.9

+0

啊哈!是的,當然 - 我已經看過第三個參數,但我認爲這是索引設置爲零的其他內容。我忘記了我只是在向一個空集合添加一個項目,所以顯然索引是零。優秀的,歡呼聲。 – 2012-02-07 14:03:09

相關問題