오른쪽에 세로 막대가있는 응용 프로그램에서 작업하고 있습니다. 컬렉션을 표시합니다. 컬렉션의 각 모델에는 select
동작이 있습니다. 페이지의 상단 중앙에 정보 표시 줄의 사이드 바에서 선택된 모델을 표시하십시오.
나는 그것을 할 수있는 방법 ? 사이드 바의 각 뷰는 모델 인수로 "selected"이벤트를 가져야한다고 생각합니다. 내 질문은 Backbone.js에서 내 정보 막대보기의 변경 내용을 어떻게들을 수 있습니까 ???
오른쪽에 세로 막대가있는 응용 프로그램에서 작업하고 있습니다. 컬렉션을 표시합니다. 컬렉션의 각 모델에는 select
동작이 있습니다. 페이지의 상단 중앙에 정보 표시 줄의 사이드 바에서 선택된 모델을 표시하십시오.
나는 그것을 할 수있는 방법 ? 사이드 바의 각 뷰는 모델 인수로 "selected"이벤트를 가져야한다고 생각합니다. 내 질문은 Backbone.js에서 내 정보 막대보기의 변경 내용을 어떻게들을 수 있습니까 ???
이것은 이벤트 수집기 패턴으로 잘 처리되는 것처럼 들립니다. Derick Bailey는 당신이 여기서 읽을 수있는 정말 좋은 기사를 올렸습니다. 모든 뷰 이런 그들에게 사용할 수있는 이벤트 수집기 개체를 가질 수 있도록
나는 나의 Backbone.View을 확장했다.Backbone.View.prototype.eventAggregator = _.extend({}, Backbone.Events);
기본적으로 모델보기를 선택하면 view.eventAggregator가 일부 맞춤 이벤트를 트리거합니다.
sidebarView.eventAggregator.trigger('selected', this.model);
또는 이와 비슷한 것입니다. 백본 이벤트를 사용하면 트리거 함수를 통해 매개 변수를 이벤트 수신기에 전달할 수 있습니다. 위의 예에서 특정 이벤트가있는 모델을 전달했습니다.
메인보기에서이 이벤트를 듣고 싶습니다.
mainView.eventAggregator.on('selected', myFunction, this);
myFunction: function(model) {
// Some code to execute - model is available through param
}
매우 유용한 패턴입니다. 메인 뷰를 닫을 때 이벤트를 바인딩 해제하는 것을 잊지 마세요. :-)
무엇 빠른 대답, 아주 잘 작동 :), 정말 고마워요 :) –