リストを作成するためのマスター ビューがあります。このビューには、「さらにアイテムをロードする」ためのクリック イベントがあります。
マスター ビューを拡張する 2 つのサブ ビューがあります。
私の問題は、1 つのビューの [さらに読み込む] ボタンをクリックすると、他のビューに影響することです (以前に読み込まれた場合)。別のビューを初期化する前にビューを閉じる必要があることは理解していますが、私のビューはマスター ビューを拡張しているため、このメソッドは機能しません (マスター オブジェクトを閉じ、他の子ビューは初期化されません)。
Backbone.View.prototype.close = function(){
this.remove();
this.unbind();
}
私のマスタービュー:
App.Views.List = Backbone.View.extend({
events: {
'click .load-btn' : 'loadMore'
},
loadMore: function(e)
{
this.collection.increase().fetch({
add: true
});
e.preventDefault();
}
}
.increase は、api パラメータを増やすためのカスタム メソッドであることに注意してください。
子ビュー:
App.Views.Projects = App.Views.List.extend({
initialize: function()
{
this.itemView = App.Views.Project;
this.collection = new App.Collections.Projects();
this.parent('initialize');
},
render: function()
{
this.template = _.template(App.Tpl.get('projects.list'));
this.parent('render');
}
});
.parent は、マスター ビューのメソッドを呼び出すカスタム メソッドであることに注意してください。
そのため、ビューの load-more ボタンをクリックすると、すでに初期化されている場合は、マスター ビューから拡張されたすべてのビューで loadMore メソッドを呼び出そうとします。
私は何をすべきか?