1

カスタム コンポーネントを ExtJS4 コンテナーに追加しようとしています。ただし、onRender メソッドでコンテナーに項目を追加しようとすると、次のエラーが表示されます。

AbstractContainer の doLayout から「未定義のプロパティ 'layoutBusy' を読み取れません」。componentLayout プロパティが定義されていません。

Ext.define('App.view.dashboard.RightContainer', {   
    extend: 'Ext.container.Container',
    uses: [
        'App.view.Component1',
        'App.view.Component2'
    ],

    alias: 'widget.dashboardright',
    layout: 'fit',
    border: 0,

    onRender: function() {

        var self = this;
        self.callParent(arguments);

        var component1 = Ext.create('App.view.Component1', {
            height: '300px',
            flex: 1,
            incidents: self.dashboard.get('incidents')
        });

        var component2 = Ext.create('App.view.Component2', {
            flex: 1,
            contact: self.dashboard.get('contacts')
        });

        self.add(component1);
        self.add(component2);
    }
});

コンテナーのアイテム構成プロパティを使用してコンポーネントを追加しようとしましたが、機能します。ただし、カスタム パラメータをコンポーネントに渡す方法がわかりません (モデル インスタンスをコンポーネントに渡す必要があります)。

助けてくれてありがとう。

4

1 に答える 1

1

この例を見てください: http://jsfiddle.net/ChE59/

コンテナに 3 つのパネルを追加し、いくつかのカスタム プロパティを渡します。

Ext.define('App.view.dashboard.RightContainer', {   
    extend: 'Ext.container.Container',
    alias: 'widget.dashboardright',


    border: 0,

    constructor: function(config){
        Ext.apply(this, {
            items: [
                { 
                    title: 'panel 1'
                },
                { 
                    title: 'panel 2'
                },
                {
                    title: config.customParameter
                }
            ]     
        });

       this.callParent(arguments);        
    }
});


Ext.widget('dashboardright', {
    renderTo: Ext.getBody(),
    customParameter: 'custom parameter'
});

(1 つのコンポーネントが複数ある場合、フィット レイアウトは適切な選択ではありません)

于 2012-05-02T19:47:27.090 に答える