我有一个Backbone视图,例如,编辑配置文件视图,我将视图传递给我的用户模型实例。但是,我想让用户从选择下拉列表中选择自己喜欢的社交网络。现在,这个社交网络列表由他们填充在应用程序的另一个区域。
我的问题是,1。存储这些社交网络的最佳方式是什么?每个模型,所以社交网络的集合? 2.然后我将一个集合(社交网络)和一个模型(用户)传递给我的编辑个人资料视图吗?
这是最好的方式吗?
答案 0 :(得分:8)
基本上你可以使用initialize -function来做这种事情。您可以将另一个作为模型或集合传递,另一个作为参数传递,您只需要保存对它的引用。您还可以为视图提供模型和集合。
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;
希望这有帮助!