목록을 만드는 데 마스터보기가 있습니다. 이보기에는 "더 많은 항목을로드하는"click 이벤트가 있습니다.
마스터보기를 확장하는 두 개의 하위보기가 있습니다.
내 문제는 하나의보기에서 "더 많은로드"버튼을 클릭하면 이전에로드 된 다른보기에 영향을 미친다는 것입니다. 다른 뷰를 초기화하기 전에 뷰를 닫아야한다는 것을 알고 있지만 내 뷰가 마스터 뷰를 확장하고 있기 때문에이 메서드는 작동하지 않습니다 (마스터 객체를 닫고 다른 자식 뷰가 초기화되지 않습니다).backbone.js가 뷰 하위에서 이벤트를 공유하지 못하도록하는 방법
내 마스터보기 : API를 매개 변수를 증가시키는 사용자 정의 방법 .increase 것을
App.Views.List = Backbone.View.extend({
events: {
'click .load-btn' : 'loadMore'
},
loadMore: function(e)
{
this.collection.increase().fetch({
add: true
});
e.preventDefault();
}
}
참고.
아이 뷰 : .parent 마스터 뷰의 메소드를 호출하는 사용자 정의 방법이다
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');
}
});
참고.
뷰에서 load-more 버튼을 클릭하면 이미 초기화 된 경우 마스터 뷰에서 확장되는 모든 뷰에서 loadMore 메서드를 호출하려고 시도합니다.
어떻게해야합니까?
[this] (http://stackoverflow.com/questions/5457915/how-can-i-stop-event-propagation-with-backbone-js)의 중복? –
여기에 _noise_가 너무 많습니다. _custom methods_'.increase' 및'.parent'가이 동작의 책임이 아닙니까? 이러한 뷰가 모두 공유되면 '엘'DOM 요소가 이벤트를 공유하게됩니다. – fguillen