[ExtJs] fireEvent 子父控件和子子控件方法调用

在ExtJS中,当点击子控件C时,需要获取自身、父控件A及同级控件B的处理值,并将结果传递给C的cSave方法。为避免控制器过于庞大,计划在各组件内部处理逻辑。文章展示了如何使用fireEvent在C和B组件中定义处理逻辑,并在A的控制器中响应这些事件,从而实现子父及同级控件间的方法调用。
摘要由CSDN通过智能技术生成

已知现存在以下页面模式:

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控件类:


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

29号同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值