已知现存在以下页面模式:
A为父级容器,B、C为A中的子控件,且为同级控件。
现在,有个场景:
点击了C时,要获取C和A和B中的所有处理的值,然后把处理过的结果,传给C中的cSave方法去返回出来。
完成以下的一个闭环:
为了避免产生一个巨大的controller(就是把这些逻辑处理都丢给A,然后A去找一个个控件 再处理逻辑,这样A的controller很巨大),准备在各类中处理控件自己的逻辑
首先把C和B控件的逻辑写好:
C控件:
Ext.define('C', {
extend: 'Ext.Container',
xtype: 'c',
defaultListenerScope: true,
items: [{
xtype: 'button',
text: 'C按钮',
ui: 'action',
handler: 'OK'
}],
listeners: {
cmethod: 'C',
cSave: 'Save'
},
OK() {
const me = this;
var msg = me.C('');//点击了C开始先处理C中逻辑
me.fireEvent('CinAMethod', me, msg);//C处理好后交由A处理
},
C(msg) {
return msg + 'C中处理的数据,';
},
Save(val) {
alert('c接收的值:' + val)
}
});
B控件类: