Сбой загрузки класса ExtJS 4

#javascript #extjs #extjs4

#javascript #extjs #extjs4

Вопрос:

У меня есть код, похожий на этот:

 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:

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

 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')
                ]
            }
        ];
    }
});