在 ExtJS 中的视图之间传递数据

Pass data between views in ExtJS

我正在从商店读取数据并填充主 girdView。单击任何一行时,会出现 windows,我想用单击的相同记录填充该 window 中的字段集。 谁能告诉我该怎么做?

我的弹出窗口 window 是这样的:

{
    extend: 'Ext.window.Window',

    height: 500,
    width: 1500,
    minWidth :1500,
    maxWidth :1500,
    layout: 'fit',
    controller: 'PopUpWindowController',

    initComponent: function () {

        var me = this;


        //console.log(me.myExtraParams);
        var Store = Ext.getStore('mainStore');

        Ext.applyIf(me, {
         /*   items: [{
                xtype: 'form',
                bodyPadding: 10,
                region: 'center'
            }]*/

        });    
        me.callParent(arguments);
    },      
        items: [
    {      
        xtype: 'panel',
        title : 'Projektierung',
        bodyStyle : 'padding:5px',
        width : 1880,
        autoHeight : true,
        items:
        [ 
            {
                xtype  : 'kopfdatenView', // Have to populate this view
            }
        ]
}]}

在主视图中,我将其称为:

{ 区域:'center', xtype: 'gridpanel',

            listeners : {
                itemdblclick: function(dv, record, item, index, e) {

                    var extra = record.data;
                    win = Ext.create('App.view.PopUpWindow');

                    console.log(win.myExtraParams);

                    win.on('show', function(win) {

                     win.setTitle(record.get('ID'));
                    });

                    win.show();
                }
            },

             columns: [
                      ****
                    ],
            store: 'mainStore', 
            height: 100,
            width: 400,

        }

我想在 kopfdatenView 中填充字段集。请帮助

你可以这样做:

 win = Ext.create('App.view.PopUpWindow', {
           params: record
       });

然后,在您的 PopUpWindow 控制器中,您可以在渲染事件中检索 'params'(例如)。

您在创建时直接将您的记录传递给您的 window:

win = Ext.create('App.view.PopUpWindow', {
    myRecord: record
});

然后在 window 的 initComponent 函数中(在 callParent 之前):

this.title = this.myRecord.get('ID');