2010-12-27 8 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

読者の定義は、私には正しく見えるしません:ビット罰金 "{} [ 'AAA'、 'BBB'、 'C​​CC']" ですか?

とにかく、このコードは、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)); 
      } 
     } 
    } 
}); 

それは '/あなた/ URL /' でサーバーの呼び出しによって返された次のようなJSON文字列で動作します:

{ 
    "rows": [ 
     { 
      "id": 17, 
      "field1": "Emiliano", 
      "field2": 1 
     }, 
     { 
      "id": 18, 
      "field1": "Luca", 
      "field2": 3 
     }   
    ], 
    "total": 2 
} 
  • loadメソッドとloadイベントを混同しないでください。

  • は(まあ、実際に それが印刷された「テスト OK」の文字列を持っている必要はありませんが、それなしで あなたがで印刷されたIDを取得することはできません でリーダーの定義を「ルート」パラメータを忘れないでくださいループのための )

関連する問題