2012-05-30 85 views
2

我有一個獲取請求,其響應看起來像這樣。如何從一個獲取請求獲取多個模型或集合

response = { 
    id: 1, 
    title: 'text', 
    followers: [{}, {}] // array of objects 
} 

正如你所看到的,響應是一個對象,它有一個屬性追隨者,它是一個對象數組。

我想從這個響應的一個模型,一個集創建, 一個具有以下屬性:

response = { 
    id: 1, 
    title: 'text' 
} 

和其他一,型號

followers: [{}, {}]; 

收集什麼是否是實現我的目標的恰當方式?
我可以使用Backbone.Relation嗎?
如果是,有一些例子嗎?

回答

2

我已經習慣了使用比@lecstor相同的方法,但我更喜歡做的initialize()是這樣的:

initialize: function(){ 
    this.followers = new Followers(this.get("followers")); 
} 
+0

那麼把'initialise function'放在下面一行呢? 'this.on('change',this.create Followers,this);' –

+0

@LorraineBernard在聲明_binding_之後你必須確定屬性已經被設置,同時要注意這個_binding_將會在任何_attribute_該模型_。我建議您必須將我的方法與某種_binding_結合起來,以管理_followers_屬性中的更改。 – fguillen

0

爲什麼沒有包含集合和子模型的模型?

基本上是一個視圖模型

1

根據您的需要/視圖/等,我可能會換一個模式,響應和創建模型的追隨者的集合...

MyModel = Backbone.Model.extend({ 
    urlRoot: '/url/to/get/response' 
}); 

Follower = Backbone.Model.extend(); 

Followers = Backbone.Collection.extend({ 
    model: Follower 
}); 

this.model = new MyModel({ id: 1 }); 
var that = this; 
this.model.fetch({ 
    success: function(model, response){ 
     that.collection = new Followers(model.get('followers')) 
    } 
}); 

我認爲你可以,然後用很輕鬆地更新從集合模型:

this.model.set('followers', this.collection.toJSON())