0

コンポーネントとしてレンダリングされた div のサイズを取得しようとしています。

Ext.define('EDS.view.selector.Container', {
    extend: 'Ext.panel.Panel',
    alias : 'widget.selectorcontainer',

    layout: 'fit',

    initComponent: function(){

        this.items = [
                {
                    xtype: 'tabpanel',
                    defaults: {
                        bodyPadding: 10
                    },
                    layout: 'fit',
                    items:[
                         {
                             title: 'Organization',
                             id: 'selector-organization',
                             tag: 'div',                             
                             html: 'div here',
                             height: '100%',

                            onRender: function(){

                                //// Render D3
                                // Selector
                                console.log("onRender");
                                console.log(this.height);
                                console.log(this.width);

                                var divId = Ext.getCmp('selector-organization').id + "-body";
                                var divHeight = Ext.get(divId).getHeight();
                                var divWidth = Ext.get(divId).getWidth();
                                console.log(divHeight);
                                console.log(divWidth);
                                renderSelectorOrgView(divId, divHeight, divWidth);   

                                this.callParent();
                             },
......
......

そして、この onRender 関数は、通常のレンダリング プロセスを中断します。レイアウト全体が破損し、div (#selector-organization-body) が非常に小さくなっています。だから、間違った方法で onRender をオーバーライドしていたのではないかと思っています。

4

2 に答える 2

1

すべてのパネルで onRender 関数をオーバーライドする場合は、次のようにします。

Ext.override(Ext.tab.Panel, {
    onRender: function() {
        this.callParent();

        console.log('do something');
    }
});
于 2013-08-20T15:47:24.827 に答える