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 结构中,我们有两个属性(键:值对)作为“成功”和“用户”。“用户”键有一个对象数组,我们将在存储中使用它。所以在这个 json 中,我们将为我们的阅读器使用“用户”属性,所以只有我们提到“用户”作为该商店的根。

回顾一下,root 是一个配置,它将告诉我将在消费 json 中将属性/对象的哪一部分用于我的商店。

谢谢

于 2013-04-29T05:41:00.137 回答