한 View Controller에서 다른 ViewController에서 발생한 이벤트를 수신하는 방법을 파악하는 데 문제가 있습니다.보기 컨트롤러 간의 이벤트 수신
내 그리드 구성 요소는 리스너에게
selModel: {
listeners: {
selectionchange: 'onChemClick'
}
},
를 정의하고 내의 ViewController (라고 chemslist는) 다른 이벤트를 발사 기능을 가지고
onChemClick: function(view, selected) {
console.log("before firing");
this.fireEvent('canvasData', this, selected.length);
console.log("after firing");
console.log(selected);
}
사실이 이벤트와 쇼 수신 다른 컨트롤러가 자료.
Ext.define('view.canvas.CanvasController', {
extend: 'Ext.app.ViewController',
alias: 'controller.canvas',
listen: {
controller: {
chemslist: {
canvasData: 'onCanvasData'
}
}
},
onCanvasData: function() {
console.log("At Fire");
}
});
어떤 이유로 CanvasController가 이벤트를 수신 할 수없는 이유를 알 수 없습니다. 또한 Ticket 예제를 살펴보고 이벤트가 발생하는 방식과 다른 viewController가 이벤트를 수신하는 방식을 살펴 보았습니다.
또한 하나의 영역에서 그리드를 선택하면 다른 영역에서 많은 변화가 발생합니까? 모든 구성 요소가이를 수신 할 수 있도록 전역으로 실행해야하는 경우 가장 좋은 방법은 무엇입니까? 또는 내가 그것을 (ViewController 아닌) 주 컨트롤러에서 듣고 이벤트를 기반으로 구성 요소를 생성해야합니까?
감사합니다.
ID를 설정하고 와일드 카드를 사용해 보았습니다. 둘 다 일하지 않습니다. 나는 정말로 분명한 것을 놓치고 있는지, 아니면 뭔가 잘못되어 있는지 모른다. – Jayaram
나는 약간 연구를하고 응답을 새롭게했다. 확인 해봐. – Saki
두 예제가 모두 컨트롤러 인 경우 예제가 작동합니다. ViewController는 무엇입니까? – Jayaram