1

私はバックボーン ビューを持っています。たとえば、[プロファイルの編集] ビューで、ユーザー モデル インスタンスをビューに渡します。ただし、たとえば、ユーザーが選択ドロップダウンからお気に入りのソーシャル ネットワークを選択できるようにしたいと考えています。現在、このソーシャル ネットワークのリストは、アプリケーションの別の領域に入力されています。

私の質問は、1. これらのソーシャル ネットワークを保存する最善の方法は何ですか? それぞれのモデルなので、ソーシャル ネットワークのコレクションですか? 2. 次に、コレクション (ソーシャル ネットワーク) とモデル (ユーザー) を [プロファイルの編集] ビューに渡しますか?

これが最善の方法ですか?

4

1 に答える 1

8

基本的に、 initialize 関数を使用してこの種のことを行うことができます。もう一方をモデルまたはコレクションとして渡し、もう一方をパラメーターとして渡すことができます。参照を保存するだけです。また、ビューにモデルとコレクションを与えることもできます。

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;

お役に立てれば!

于 2012-12-04T10:08:19.767 に答える