Не удается загрузить класс ExtJS 4 - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть код, подобный этому:

Ext.define('GG.view.Workbench', {
    extend: 'Ext.container.Viewport',
    layout: 'fit',
    items: [
        {
            xtype: 'container',
            layout: 'border',
            items: [
                {
                    region: 'center',
                    items: [
                        Ext.create('GG.view.Foo')
                    ]
                },
                {
                    region: 'south',
                    items: [
                        Ext.create('GG.view.Bar')
                    ]
                }
            ]
        }
    ],

    initComponent: function() {
        this.callParent(arguments);
    }
});

Что происходит, так это то, что код не работает, когда туда поступают два вызова Ext.create.

Вот что я получаю в Chrome:

Uncaught TypeError: object is not a function
(anonymous function)
Ext.ClassManager.instantiateext-debug.js:6428
(anonymous function)ext-debug.js:2414
(anonymous function)

Как мне использовать это Ext.create?

1 Ответ

2 голосов
/ 29 сентября 2011

Вы перегружены, и вы должны сделать это в методе, который будет выполняться при каждом создании класса

Ext.define('GG.view.Workbench', {
    extend: 'Ext.container.Viewport',
    layout: 'border',

    initComponent: function() {
        var me = this;

        Ext.apply(me, {
            items : me.buildItems()
        });

        me.callParent(arguments);
    },

    buildItems: function() {
        return [
            {
                region: 'center',
                items: [
                    Ext.create('GG.view.Foo')
                ]
            },
            {
                region: 'south',
                items: [
                    Ext.create('GG.view.Bar')
                ]
            }
        ];
    }
});
...