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