我在试图弄清楚如何从另一个ViewController监听在一个View Controller中触发的事件时遇到了麻烦.
我的网格组件定义了一个监听器
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示例并查看了如何触发事件以及其他viewControllers监听它们.
如果一个区域中的网格上的选择导致另一个面板中的大量更改,那么最佳做法是什么?如果事件被触发为全局,那么所有组件都会听取它?或者我应该在主控制器(而不是ViewController)中听它并根据事件生成组件?
谢谢!