2012-03-27 33 views
1

我在ExtJS 4(網格和表單)中有兩個類,它們具有相關的屬性(列和字段定義)。在ExtJS中動態加載一個非類4

我要爲他們創造一個共同的定義文件和動態加載:

# app/common/Columns.js 

Ext.ns('myapp.common'); 
myapp.common.Columns = 
     [ 
     { 
     text: 'Name', 
     dataIndex: 'name', 
     }, 
     { 
     text: 'Email', 
     dataIndex: 'email', 
     } 
     ]; 


# app/view/Grid.js 

Ext.define 
     (
     'myapp.view.Grid', 
     { 
     extend: 'Ext.grid.Panel', 
     columns: myapp.common.Columns 
     } 
     ); 


# app/view/Form.js 

Ext.define 
     (
     'myapp.view.Form', 
     { 
     extend: 'Ext.form.Panel', 
     items: myapp.common.Columns.map 
       (
       function(v) 
       { 
         return { 
           name: v.dataIndex, 
           fieldLabel: v.text, 
           }; 
       } 
       ); 
     } 
     ); 

正如你所看到的,app.common.Columns是不是一類。

我知道我可以將它轉換成一個類,並覆蓋窗體和網格的構造函數來使用它,但我想保持簡單。

是否需要手動爲app/common/Columns.js添加<script>標記,或者有辦法動態加載它嗎?

回答

1

我不認爲你可以使用ExtJs加載器動態加載文件,而無需在那裏定義類。他們的加載器對於完全匹配的類名和文件名非常挑剔。我剛剛嘗試過你的示例 - 它似乎並沒有工作。