0

これが私のコードです:

function getStore (json) {
    var reader = new Ext.data.JsonReader({
       root : 'data',
       successProperty: 'success',
       totalProperty: "rows",
       fields : [
        {name: 'num', allowBlank:'true'},
        {name: 'date', dateFormat:'d.m.Y H:i:s', type: 'date'},
        {name: 'signerFIO', type: 'string'},
        {name: 'checkSign', type: 'boolean'}
       ]
   });

   var store = new Ext.data.JsonStore ({
     data   : json,
     reader : reader
   });

   return store;
}

サーバーから到着したデータは次のとおりです: {"data":[{"num":"111","signerFIO":"hello","checkSign":true,"date":"25.05.2012"}],"success":1,"rows":1}

「json」関数パラメーターを生のjson(到着したとき)とExt.util.JSON.decode(response.responseText)に設定しようとしました

このコードを FF で試してみましたが、FireBug で奇妙なh is undefinedエラーが発生しました。

誰が何が悪いのか知っていますか?

アップデート

これ

var store = new Ext.data.JsonStore ({
    data     : json,
    fields   : ['data']
});

エラーはありませんでしたが、データがロードされなかったという点で私にとってはうまくいきました。

4

2 に答える 2

1

このコードで何をしようとしているのかはよくわかりませんが、これでうまくいきます (json が文字列ではなくデコードされたオブジェクトであると仮定します):

Ext.define("MyItem", {
    extend: "Ext.data.Model",
    fields: [
        {name: 'num', allowBlank:'true'},
            {name: 'date', dateFormat:'d.m.Y H:i:s', type: 'date'},
            {name: 'signerFIO', type: 'string'},
            {name: 'checkSign', type: 'boolean'}
    ]
});
function getStore (json) {

   var store = new Ext.data.JsonStore ({
     data:  json.data,
     model: MyItem
   });

   return store;
}
于 2012-06-25T18:09:55.080 に答える
0

問題はリーダーにありました (実際、何が問題なのかわかりません)。これ:

function getStore (jsonRequestUrl) {
var store = new Ext.data.JsonStore ({
    autoLoad : false,
    proxy    : new Ext.data.HttpProxy({ url: jsonRequestUrl, method: 'POST' }),
    root     : 'data',
    successProperty : 'success',
    totalProperty   : "rows",
    idProperty      : "id",
    fields : [
        {name: 'num', type: 'string', mapping: 'num'},
        {name: 'signerFIO', type: 'string', mapping: 'signerFIO'},
        {name: 'checkSign', type: 'boolean', mapping: 'checkSign'},
        {name: 'date', dateFormat:'d.m.Y', type: 'date', mapping: 'date'}
    ]
});
store.load();

return store;
}

私のために働いた。

于 2012-06-26T11:14:15.500 に答える