Почему во внешнем загрузчике ExtJS 3 отсутствуют части и не отображается сетка?

#javascript #datagrid #extjs

#javascript #datagrid #extjs

Вопрос:

У меня есть ExtJS 3 datagrid с несколькими добавленными функциями, которые не отображаются. Консоль 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 отображает ошибку:

Ошибка неперехваченного типа: объект # не имеет метода ‘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:

Вы смешиваете новый Ext JS 4 Ext.Loader с Ext JS 3 Ext.Loader . Ваш код включает Ext JS 3, в то время как вы используете синтаксис и API Ext.Loader из Ext JS 4.

Старую документацию по API Ext JS 3 можно найти здесь: http://dev.sencha.com/deploy/ext-3.3.1/docs

Редактировать

Старый загрузчик Ext JS 3 не поддерживает сопоставление имен классов с путями, поэтому загрузчик принимает только массив путей к файлам в качестве аргумента. Пожалуйста, также обратите внимание, что загрузка выполняется асинхронно, поэтому ваши загруженные файлы доступны только после завершения загрузки.

Комментарии:

1. Спасибо; Я внес изменения в приведенную выше правку, и это нарушает что-то еще.