Uncaught Попытка создать компонент с xtype, который не был зарегистрирован: - PullRequest
0 голосов
/ 01 августа 2011

Я написал программу в сенче, которая работала нормально.Поскольку мои файлы становятся слишком большими, я пытаюсь разделить их на несколько маленьких файлов, используя xtypes.

По сути, я пытаюсь получить один файл main.js, вызывающий xtype list.js, вызывающий другие детали xtype.JS также вызывает необходимые xtypes ...

Моя проблема в том, что, поскольку я начал разбивать свой код, я получаю эту ошибку: Uncaught Attempting to create a component with an xtype that has not been registered.

Я уверен, что каждыйфайл правильно указан в моем index.html.

Вот пример моего кода:

Details.js

var details = Ext.extend(Ext.Panel, {
layout: 'card',
cardSwitchAnimation: 'slide',

initComponent: function(){
    Ext.apply(this,{
        items:[]
    })
    details.superclass.initComponent.apply(this,arguments);
}
});
Ext.reg('details', details);

List.js

var Details = {xtype: 'details'};

var ListWrapper = new Ext.Panel({
id: "listwrapper",
layout: 'fit',
items: [List],
dockedItems: [homeTitleBar]
});

var Home = new Ext.Panel({
id: "home",
layout: 'card',
cardSwitchAnimation: 'slide',
items: [ListWrapper, Details]
});

var HomeTab = Ext.extend(Ext.Panel, {
iconCls: 'home',
title: 'Home',
layout: 'card',
initComponent: function() {
    Ext.apply(this,{
        items: [Home]
    }); 
    HomeTab.superclass.initComponent.apply(this,arguments);
}
});
Ext.reg('home', HomeTab);

Main.js

var menuBar = Ext.extend(Ext.TabPanel, {
layout: 'card',
cardSwitchAnimation: 'slide',
fullscreen: true,
tabBar: {
    dock: 'bottom',
    layout: {pack: 'center'}
},
items:[
    {xtype: 'home'}
]
});
Ext.reg("menuBar", menuBar);

1 Ответ

0 голосов
/ 02 августа 2011

Проверьте порядок тегов <script>. Похоже, вы загружаете свои файлы в неправильном порядке (возможно, main.js до list.js или list.js до details.js).

Я бы также использовал Ext.reg только если вы собираетесь повторно использовать определенные вами компоненты, в вашем случае похоже, что вы просто используете их один раз, так что выиграть не так уж много, и вы могли бы просто передать Компонент а не избыточный дополнительный Object + xtype

...