2014-11-05 89 views
0

有一個服務器返回JSON對象,像這樣:骨幹集合獲取屬性

{ 
    'key1':'value' 
    'key2':{ 
     'key2_0':'value' 
    } 
} 

和收集:

var Collection = Backbone.Collection.extend({ 
    url:api.url//which returns the object above 
}); 
var collection = new Collection(); 
collection.fetch({ 
    success:function(data){ 
     //do something 
    } 
}); 

現在我需要在我的應用程序中使用收集的某些屬性,但說我需要key1,我總是必須做collection.at(0).get('key1');//returns 'value',因爲返回的數據存儲在集合中,在一個新的數組中鍵爲0.

問題:

如何直接... collection.get('key1')//now returns undefined... because it is

我知道我可以在收集成功函數some_other_var = data.toJSON()[0]中公開一個對象到全局範圍,並直接訪問some_other_var屬性,但這不是我要找的;

+0

你能創建一個演示問題的小提琴嗎? – 2014-11-06 06:29:07

回答

0

爲了你需要知道的型號ID或CID想用的get()函數Backbone.Collection。

例如,讓我們說你的數據從服務器端傳來的是像如下:

[{ 
id: '123', 
name: 'Alex' 
}, { 
id: '456', 
name: 'Jhon' 
}] 

在這種情況下,你可以這樣做:

this.collection.get('123').get('name') // Return "Alex" 

請記住,集合只是一組模型,所以在後臺通過做collection.get()你得到一個模型

提示:如果你的服務器數據中沒有任何類型的id,總是有使用下面的選項核心方法:

  • 找到
  • 過濾
  • 一些
  • 包含