在ExtJS 4中动态加载非类

时间:2012-03-27 19:07:34

标签: javascript extjs4

我在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不是一个类。

我知道我可以将它转换为一个类并覆盖表单和网格的构造函数来使用它,但我想保持简单。

我是否需要手动为<script>添加app/common/Columns.js代码,还是有办法动态加载它?

1 个答案:

答案 0 :(得分:1)

我认为你不能使用ExtJs加载器动态加载文件而不需要在那里定义类。他们的加载器对于将类名与文件名完全匹配非常挑剔。我刚试过你的样本 - 它似乎没有起作用。