Extjs 4 - 如何在initComponent函数中使用父组件

时间:2013-08-08 07:32:49

标签: extjs extjs4.1

我定义了一个像

这样的网格面板
    Ext.define('Example', {
        extend: 'Ext.grid.Panel',   
        alias: 'myGrid',
        store:Ext.create('Ext.data.Store', {
            fields: [
                {name: 'name'}
            ]
        }),
        initComponent: function() {
             alert(this.up('window').title); //but error like this.up(...) is undefined
             this.callParent(arguments);
        }
    ...

我创建了一个窗口,上面有一个项目

   items: {  
        xtype: 'myGrid'
    }

我想在父组件中得到一些东西。如何在initComponent函数中达到parent component。感谢

2 个答案:

答案 0 :(得分:4)

    initComponent: function() {
         var me = this;

         this.callParent(arguments);
         me.on('render', function() {
             alert(me.up('window').title);
         });
    }

答案 1 :(得分:0)

你不能。必须先将组件实例化,然后才能将其添加到容器中。您可以覆盖onAdded模板方法,该方法将在将组件添加到容器时调用:

Ext.define('Foo',
    extend: 'Ext.Component',

    onAdded: function(ct) {
        this.callParent(arguments);
        console.log('Added to', ct);
    }
});