利用ext良好的擴展性,咱們很容易定義本身的組件。通常這樣組件的代碼都是一個單獨的文件,在要用的時候就加載進來。長此以往,這樣自定義的組件多了一樣組件所對的文件也多了起來,這時若是咱們手動的去加載js文件,不只界面變得混亂,並且還會浪費一些帶寬。下面的就是利用Ext.Loader.setConfig動態的加截這些文件javascript
下面myWin.js是自定義的組件,組件名稱(不包括組件的命名空間)要和文件名一致:java
Ext.define("customComponent.myWin",{ extend:'Ext.window.Window', title: 'Hello', height: 200, width: 400, layout: 'fit', items: { // Let's put an empty grid in just to illustrate fit layout xtype: 'grid', border: false, columns: [{header: 'World'}], // One header just for show. There's no data, store: Ext.create('Ext.data.ArrayStore', {}) // A dummy empty data store }, constructor: function (config) { this.callParent(arguments); // calls Ext.panel.Panel's constructor } })
利用Ext.Loader.setConfig,設置要加載的資源位置。:this
Ext.Loader.setConfig({ enabled:true, paths:{ customComponent:'custom/win' } });
如上customComponent 猶如是一個命名空間,而其值就是命名空間所映射的資源路徑,下面咱們就能夠建立customComponent.myWin 窗口了:code
Ext.onReady(function(){ var win = Ext.create("customComponent.myWin"); win.show(); })
當ext建立customComponent.myWin時發現沒有這個類,就會解析這個類其中customComponent會被認做命名空間,併到Ext.Loader.setConfig中去匹配,發現路徑是custom/win。而myWin就會被認作是文件名,最後的資源路徑是./custom/win/myWin.js。Ext會自動的加載這個資源,這樣咱們就不用手動的去指定路徑了。記住Ext只是在建立該類時纔去加載的文件的。ip
注意:Ext.Loader.setConfig調用要在Ext.onRead前資源