1つのビューで複数のモデルをどのように呼び出しますか
通常の場合、バックボーンモデルを作成します
var myModel = Backbone.Model.extend({ url:"api/authentication"});
次に、それをビューに割り当てて、特定のビューのデフォルトモデルにします
var LoginView = Backbone.View.extend({
model: new myModel(),
initialize: function(){
_.bindAll(this, 'render', 'render_thread_summary', 'on_submit', 'on_thread_created', 'on_error');
this.model.bind('reset', this.render);
this.model.bind('change', this.render);
this.model.bind('add', this.render_thread_summary);
},
...
});
しかし、1つのビューにさまざまなモデルを呼び出す多くのメソッドがあります。現在、イベントメソッド内にモデルのインスタンスを作成しています。
私が考えている他の解決策は次のようになります
initialize: function(){
_.bindAll(this, 'render', 'render_thread_summary', 'on_submit', 'on_thread_created', 'on_error');
new.model1().bind('reset', this.render);
new.model2().bind('change', this.render);
new.model3().bind('add', this.render_thread_summary);
},
しかし、これらの良い習慣はありますか?これを行う他の方法は何ですか。ありがとう。
更新 ピーターに応えて、これが私の実際のコードです
var userRegModel = Backbone.Model.extend({url: fn_helper.restDomain()+'user/reg'});
var userResendActivationModel = Backbone.Model.extend({url: fn_helper.restDomain()+'user/token/activation/new'});
var userResetPassModel1 = Backbone.Model.extend({url: fn_helper.restDomain()+'user/pwdreset/token/new'});
var userResetPassModel2 = Backbone.Model.extend({url: fn_helper.restDomain()+'user/pwdreset/change'});
var userLoginModel = Backbone.Model.extend({url: fn_helper.restDomain()+'user/login'});
_view: Backbone.View.extend({
el: 'div#main-container',
initialize: function(){},
events: {
'click #user-signup': 'signupUserFn', //userRegModel
'click a#activation-resend': 'resendActivationFn',//userResendActivationModel
'click #reset-password-submit1': 'execResetPasswordFn', //userResetPassModel1
'click #reset-password-submit2': 'execResetPasswordFn', //userResetPassModel2
上で宣言された各モデルは、イベントで宣言されたさまざまなメソッドに対応しています