为什么ExtJS 3的Ext.Loader似乎缺少部件而没有显示网格?

时间:2011-05-04 14:32:13

标签: javascript datagrid extjs

我有一个ExtJS 3数据网格,其中包含几个未显示的附加功能。 JavaScript控制台让我相信Ext缺少部分。

我导入,取得了明显的成功:

  <script type="text/javascript"
    src="/extjs3/adapter/ext/ext-base-debug.js"> 
  </script> 
  <script type="text/javascript"
    src="/extjs3/ext-all-debug.js"></script>

我有,在我的剧本中:

    <script type="text/javascript"> 
        Ext.Loader.setConfig({
          enabled: true
          });
        Ext.Loader.setPath('Ext.ux', '../ux');
        Ext.require(['Ext.selection.cellModel',
          'Ext.grid.*',
          'Ext.data.*',
          'Ext.util.*',
          'Ext.state.*',
          'Ext.form.*',
          'Ext.ux.CheckColumn'
          ]);

Chrome正在显示错误:

未捕获的TypeError:对象#没有方法'setConfig'

行号属于上面的setConfig。如果我注释掉setConfig()调用,我得到了setPath()的相同基本错误,抱怨了require()方法。

我需要输入其他东西吗?我检查了资源是否在预期的路径上,看起来它们正在被正确地提供和接收。

我想知道需要采取哪些措施来解决这个错误。

谢谢,

- 编辑 -

我现在有:

    <script type="text/javascript"> 
        /*
        Ext.Loader.setConfig({
          enabled: true
          });
        Ext.Loader.setPath('Ext.ux', '../ux');
        */
        Ext.Loader.load(['Ext.selection.cellModel',
          'Ext.grid.*',
          'Ext.data.*',
          'Ext.util.*',
          'Ext.state.*',
          'Ext.form.*',
          'Ext.ux.CheckColumn'
          ]);

我在JavaScript控制台上收到错误消息,说它试图从同一目录加载(404)Ext.grid。*等。

如何指定要搜索的正确路径?

1 个答案:

答案 0 :(得分:3)

您正在将新的Ext JS 4 Ext.Loader与Ext JS 3 Ext.Loader混合使用。当您使用Ext JS 4中Ext.Loader的语法和API时,您的代码包含Ext JS 3。

可以在此处找到 Ext JS 3 API文档:http://dev.sencha.com/deploy/ext-3.3.1/docs/

修改

Ext JS 3加载程序不支持将类名映射到路径,因此加载程序仅将文件路径数组作为参数。另请注意,加载是异步完成的,因此加载的文件仅在加载完成后才可用。