2012-03-27 42 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加载器动态加载文件,而无需在那里定义类。他们的加载器对于完全匹配的类名和文件名非常挑剔。我刚刚尝试过你的示例 - 它似乎并没有工作。