アップデート
Ext.Loaderを使用すると、ほぼすべてのものをロードできるはずです。loadScript(options)このメソッドは、読み込みが完了したときに呼び出されるコールバックも提供します。
基本的に、ファイルごとに 1 つの ExtJS クラスである限り、何でもロードできます (これ以外は試したことがないことを認めなければなりません!)。を使用して追加のパスを登録できます
Ext.Loader.setPath('EL','your/path/name'); // not done in the example below!
ローダーがそのように構成されている限り、実行時に何かを必要とすることは非常に簡単です。Ext.ux.statusbar.StatusBar
以下は、別のドメインと完全な新しいパスから実行時にロードする例です。これがJSFiddleです- ボタンをクリックするだけでクラスがロードされ、その後適用されますaddDocked
Ext.Loader.setPath( 'Ext', 'http://docs.sencha.com/ext-js/4-1/extjs-build/examples');
Ext.create('Ext.Panel', {
width: 200,
height: 200,
renderTo: Ext.getBody(),
tbar: {
xtype: 'statusbar',
statusAlign: 'right',
items: [
{
xtype: 'button',
text: 'show window',
id: 'ani-target',
handler: function(btn) {
if (btn.up('panel').down('window').isVisible()) {
btn.up('panel').down('window').hide();
btn.setText('maximize');
}else {
btn.up('panel').down('window').show();
btn.setText('minimize');
Ext.define('Ext.ux.custom.StatusBar',{
extend: 'Ext.ux.statusbar.StatusBar',
alias: 'widget.cstatus',
requires: ['Ext.ux.statusbar.StatusBar'],
text: 'Ready',
initComponent: function() {
this.callParent(arguments);
}
});
btn.up('panel').down('window').addDocked({ xtype: 'cstatus'});
}
}
}
],
},
items: [{
xtype: 'window',
closable: false,
width: 100,
height: 100,
id: 'demo-win',
animateTarget: 'ani-target'
}]
})