2011-08-01 5 views
0

これはうまくいきました。私のファイルが大きくなりすぎているので、xtypesを使って複数の小さなファイルに分割しようとしています。Uncaught登録されていないxtypeを持つコンポーネントを作成しようとしています:

基本的に、私はまた、必要に応じxtypesを呼び出し、別のXTYPEのdetails.jsを呼び出すXTYPEのlist.jsを呼び出す1つのmain.jsファイルを持ってしようとしています...

私の問題は、以来、私は分割し始めたことです私のコード、私はこのエラーを受け取ります: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); 

答えて

0

の順序を確認してくださいあなたの<script>タグ。間違った順番でファイルを読み込んでいるようです(おそらく、list.jsの前のmain.jsやdetails.jsの前のlist.js)。

定義済みのコンポーネントを再利用する場合は、Ext.regも使用します。あなたは一度だけ使用しているように見えますので、あまり得意ではなく、コンポーネントを渡すことができます余分な余分よりObject + xtype

関連する問題