2010-12-27 3 views
1

У меня есть следующий код, но он не работает. callback никогда не срабатывает, а также загружает слушателя.Обратный звонок не работает в магазине ExtJs

var someDS = new Ext.data.Store({ 
    proxy : new Ext.data.HttpProxy({url : 'someUrl', method : 'GET'}), 
    reader: new Ext.data.JsonReader({} ['aaa', 'bbb', 'ccc']), 
    callback : function(options, success, response) { 
     alert(response); 
     // some code 
    }, 
    listeners: { 
     load : function() { 
      alert("load"); 
      // some code 
     } 
    } 
}); 

ответ

4

ваше определение читатель не выглядит правильно мне: это «{} [„ааа“,„БББ“,„ссс“]» немного нормально?

в любом случае, этот код работает с ExtJS 3.2:

var mystore = new Ext.data.Store({ 
    url: '/your/url/', 
    autoLoad: true, 
    reader: new Ext.data.JsonReader({ 
     root: 'rows', 
     fields: [ 'id', 'field1', 'field2' ] 
    }), 
    listeners: { 
     load: function(t, records, options) { 
      console.log('test ok'); 
      for (var i=0; i<records.length; i++) { 
       console.log(String.format('record {0} = {1}', i, records[i].data.id)); 
      } 
     } 
    } 
}); 

он работает со следующей строкой JSon возвращенного вызова сервера в '/ вашего/URL /':

{ 
    "rows": [ 
     { 
      "id": 17, 
      "field1": "Emiliano", 
      "field2": 1 
     }, 
     { 
      "id": 18, 
      "field1": "Luca", 
      "field2": 3 
     }   
    ], 
    "total": 2 
} 
  • не путать метод нагрузки и событие нагрузки;

  • не забудьте параметр «корень» в определение читателя (ну, на самом деле это не нужно иметь «тест ОК» строка распечатана, но без него вы не получите идентификаторы печатаются для петли)

Смежные вопросы