0

データ ストアの extjs 'root' パラメータについて明確な考えがありません。

  var xxx  = new Ext.data.JsonStore
  ({                        
     autoLoad: true,
     url: 'www.dataserver.com',
     root: 'data',
     idProperty: 'ID',
     fields: ['ID', 'Name']      
  });

私はこの非常に小さなことを感じますが、私はextjsに非常に慣れていません。

4

2 に答える 2

1

JsonReader の構成です。JsonStore は、JsonReader のすべての構成を受け入れます。ルート構成では、行オブジェクトの配列を含むプロパティの名前を指定します。

あなたの場合は次のようになります:

{
    data: [
        {ID: 1, Name: "some name"},
        {ID: 2, Name: "another name"}
    ]
}
于 2013-04-29T05:15:34.353 に答える
-1

リーダーは、多くの場合、AJAX 要求に応答して、モデル インスタンスまたはストアに読み込まれるデータを解釈するために使用されます。通常、Reader インスタンスを直接作成する必要はありません。ほとんどの場合、Reader は Proxy と一緒に使用され、Proxy の Reader 構成プロパティを使用して構成されるためです。

Ext.create('Ext.data.Store', {
    model: 'User',
    proxy: {
        type: 'ajax',
        url : 'users.json',
        reader: {
            type: 'json',
            root: 'users'
        }
    },
});

上記のリーダーは、次のような JSON 文字列を使用するように構成されています。

{
    "success": true,
    "users": [
        { "name": "User 1" },
        { "name": "User 2" }
    ]
}

上記のjson構造を参照してください。「success」と「users」として2つの属性(キーと値のペアを含む)があります。「users」キーには、ストアで使用するオブジェクトの配列があります。したがって、このjsonではリーダーに「users」属性を使用するため、そのストアのルートとして「users」について言及するだけです。

要約すると、ルートは、属性/オブジェクトのどの部分がjsonの消費でストアに使用されるかを示す構成です。

ありがとう

于 2013-04-29T05:41:00.137 に答える