2012-07-04 4 views
0

я пытаюсь загрузить в магазин, но по какой-то причине, я получаю эту ошибку в Google Chrome (последняя версия):ExtJS неопределенная функция

Uncaught TypeError: Cannot call method 'apply' of undefined ext-all-debug.js:8586 
fire ext-all-debug.js:8586 
Ext.define.continueFireEvent ext-all-debug.js:24623 
Ext.define.fireEvent ext-all-debug.js:24601 
Ext.define.onProxyLoad ext-all-debug.js:50186 
Ext.define.processResponse ext-all-debug.js:39168 
(anonymous function) ext-all-debug.js:39381 
Ext.apply.callback ext-all-debug.js:6422 
Ext.define.handleResponse ext-all-debug.js:18769 
(anonymous function) ext-all-debug.js:1815 
(anonymous function) 

и этот в Internet Explorer 8:

Message: 'fireFn' is null or not an object 

, в то время как FireFox (последняя версия), похоже, игнорирует его.

Я вставил несколько новых строк в ext-all-debug.js, поэтому номера строк могут быть отключены на 5-10 строк.

Это магазин:

Ext.define("FI.store.units.InstallBaseStore", { 
extend:'Ext.data.Store', 
requires: "FI.model.units.InstallBaseModel", 

      model: "FI.model.units.InstallBaseModel", 
      storeId: 'installBaseStore', 
      pageSize:10, 
      proxy: { 
       type: 'jsonp', 
       url: urls.QSUrl+"/search", 
       limitParam: 'undefined', 
       startParam: 'offSet', 
       pageParam: 'undefined', 
       extraParams: { 
        searchString: '*:*', 
        index: "fleet", 
        role: "Admin" 
       }, 

       reader: { 
         root: 'results.results', 
         totalProperty: 'numFound', 
         model: 'FI.model.units.InstallBaseModel' 
        } 
      }, 

      listeners:{ 
       beforeload: { 
        fn:function(){ 
         console.log("BEFORE LOAD"); 
         this.getProxy().setReader({ 
         root: 'results.results', 
         totalProperty: 'numFound', 
         model: 'FI.model.units.InstallBaseModel' 
        }); 
         console.log(this.getProxy().getReader()); 
        } 
       } 
      } 
     }); 

Любые идеи?

+3

Если вы находитесь в Google Chrome вы можете сказать ему, чтобы приостановить выполнение при возникновении ошибки, перейдя на вкладку Scripts и нажав маленький знак остановки, пока он не станет синим (Пауза на исключениях). Затем, когда вы запустите программу, она точно покажет, в какой строке находится ваша ошибка, вы можете проверять переменные и запускать выражения в командной строке, а также перемещаться вверх и вниз по трассе стека, чтобы увидеть, как идут дела. – hugomg

+0

@ missingno Это приятная функция, но мне это, похоже, не очень помогает ... У вас возникли другие идеи? – Dragos

+0

Возможно, вы где-то ошиблись в переменной, и никто здесь не сможет угадать, где. Использование отладчика позволяет узнать, где без необходимости запускать вашу программу сотни раз, вручную добавляя массу отчетов о печати. – hugomg

ответ

0

Положите прокси в модели, и сделать читателя, как это:

... 
proxy:{ 
    type:'ajax', 
    url:'...', 
    reader:{ 
    type:'json', 
    root:'...' 
    } 
}