2012-12-04 75 views
1

我有一個Backbone視圖,例如,一個編輯配置文件視圖,我將視圖交給我的用戶模型實例。不過,例如,我希望允許用戶從選擇下拉菜單中選擇他們最喜歡的社交網絡。現在,這個社交網絡列表由他們填充在應用程序的另一個區域。骨幹 - 將兩個集合交給一個視圖

我的問題是,1.什麼是存儲這些社交網絡的最佳方式?每個模型,所以社交網絡的集合?和2.然後我將一個集合(社交網絡)和一個模型(用戶)傳遞給我的編輯配置文件視圖?

這是最好的方法嗎?

回答

8

基本上你可以使用初始化函數做這種東西。你可以將另一個作爲模型或集合傳遞給另一個參數,而只需將其他參數保存爲一個參數即可。你也可以看一個模型和一個集合。

var EditProfileView = Backbone.View.extend({ 
    initialize: function(options) { 
    this.user = options.user: 
    // or do this 
    this.socialNetworks = options.socialNetworks; 
    } 
}); 

// when creating an instance do 
var foo = new EditProfileView({user: someUser, collection: socialNetworks}); 
// or 
var foo = new EditProfileView({model: someUser, socialNetworks: socialNetworks}); 
// also this will work as well 
var foo = new EditProfileView({model: someUser, collection:socialNetWorks}); 

另外,如果你不想爲它分配,你可以做

var foo = new EditProfileView({user: someUser, socialNetworks: socialNetworks}); 
// the options given to a view on initialization 
// are saved to an options property in the view 
// so the following should hold true 
foo.options.user === someUser; 
foo.options.socialNetworks === socialNetworks; 

希望這有助於!

+1

便士下降了:)謝謝! – benhowdle89