在extjs 6中收听兄弟姐妹的事件组件?

时间:2015-08-05 02:52:03

标签: events extjs mvvm extjs6 extjs6-classic

我正在使用Extjs-6开发MVVM architecture应用程序。我有一个面板(panel_a)。 panel_a有两个小组(panel_1panel_2)。 panel_1有一个组件(component_1_1)。 component_1_1有一个事件(event_1)。我想panel_2event_1

如何实施此问题

请注意,我使用MVVM architecture

enter image description here

1 个答案:

答案 0 :(得分:0)

听取component_1_1活动是什么意思?你能写更多细节吗?什么必须做panel_2?

也许你想要这样的东西:

查看

Ext.define('MyApp.view.MyPanel', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.mypanel',

    requires: [
        'MyApp.view.MyPanelViewModel',
        'MyApp.view.MyPanelViewController',
        'Ext.panel.Panel',
        'Ext.form.field.TextArea'
    ],

    controller: 'mypanel',
    height: 454,
    width: 891,
    bodyPadding: 5,
    title: 'panel_a',

    layout: {
        type: 'hbox',
        align: 'stretch'
    },
    items: [
        {
            xtype: 'panel',
            flex: 1,
            bodyPadding: 10,
            title: 'panel_1',
            items: [
                {
                    xtype: 'textfield',
                    fieldLabel: 'Component_1_1',
                    listeners: {
                        change: 'onTextfieldChange'
                    }
                }
            ]
        },
        {
            xtype: 'panel',
            flex: 1,
            reference: 'panel_2',
            itemId: 'mypanel2',
            margin: '0 0 0 5',
            layout: 'fit',
            bodyPadding: 20,
            title: 'panel_2',
            items: [
                {
                    xtype: 'textareafield',
                    height: 138,
                    width: 359,
                    fieldLabel: ''
                }
            ]
        }
    ]

});

<强> CONTROLLER

Ext.define('MyApp.view.MyPanelViewController', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.mypanel',

    onTextfieldChange: function(field, newValue, oldValue, eOpts) {
        this.lookupReference("panel_2").down("textarea").setValue(newValue);
    }

});