| Defined In: | JsonReader.js |
| Class: | Ext.data.JsonReader |
| Extends: | Ext.data.DataReader |
示例代码:
var Employee = Ext.data.Record.create([
{name: 'firstname'}, // 映射了Record的"firstname" 字段为行对象的同名键名称
{name: 'job', mapping: 'occupation'} // 映射了"job"字段为行对象的"occupation"键
]);
var myReader = new Ext.data.JsonReader({
totalProperty: "results", // 该属性是指定记录集的总数(可选的)
root: "rows", // 该属性是指定包含所有行对象的数组
id: "id" // 该属性是指定每一个行对象中究竟哪一个是记录的ID字段(可选的)
}, Employee);
形成这种形式的JSON对象:
{
results: 2,
rows: [
{ id: 1, firstname: 'Bill', occupation: 'Gardener' }, // 行对象
{ id: 2, firstname: 'Ben' , occupation: 'Horticulturalist' } // 另外一个行对象
]
}
随时都可以改变JsonReader的元数据,只要在数据对象中放置一个metaData的属性。 一旦将该属性对象检测出来,就会触发Reader所使用的{@link Ext.data.Store Store}对象身上的{@link Ext.data.Store#metachange metachange}事件。
属性metaData可包含任何为该类服务的配置选项。 还可以包含fields的属性,会给JsonReader用作Ext.data.Record#create的参数,以便配置所产生的Records布局。
配合使用metaData属性,和Store的{@link Ext.data.Store#metachange metachange}事件, 就可产生“基于Store”控制的自我初始化。 metachange的处理函数会解析metaData属性(包含了任意的用户制定属性)来执行所需的配置操作, 当然还有用于定义字段的metaData.fields数组。
要创建无须好像上一例那样配置的Record构造器的JsonReader对象,你可以采取这样的机制:
var myReader = new Ext.data.JsonReader();
可由数据库返回reader所需的配置信息,叫做metaData属性,只需要在第一次请求的时候返回便可,而且metaData属性可以实际数据并列放在一起:
{
metaData: {
totalProperty: 'results',
root: 'rows',
id: 'id',
fields: [
{name: 'name'},
{name: 'occupation'}
]
},
results: 2,
rows: [
{ 'id': 1, 'name': 'Bill', occupation: 'Gardener' },
{ 'id': 2, 'name': 'Ben', occupation: 'Horticulturalist' }
]
}
@cf
| 配置项 | 定义者 | |
|---|---|---|
|
totalProperty
: String
记录集的总数的属性名称。如果是需要分页的话该属性就必须指定。
记录集的总数的属性名称。如果是需要分页的话该属性就必须指定。
|
JsonReader | |
|
root
: String
指定包含所有行对象的数组
指定包含所有行对象的数组
|
JsonReader | |
| 属性 | 定义者 | |
|---|---|---|
|
meta
: meta
送入构造器的DataReader的配置元数据。
送入构造器的DataReader的配置元数据。
|
DataReader | |
|
jsonData: this.
异步通信完毕后,保留原始JSON数据以便将来由必要的用途。如果没有...
异步通信完毕后,保留原始JSON数据以便将来由必要的用途。如果没有数据加载,那么会抛出一个load异常,该属性为undefined。
|
JsonReader | |
| 方法 | 定义者 | |
|---|---|---|
JsonReader
(
Object meta,
Object recordType
)
: Ext.data.JsonReader
构造器
构造器
参数项:
|
JsonReader | |
read
(
Object response
)
: Object
从远端服务器取得数据后,仅供DataProxy对象所使用的方法。
从远端服务器取得数据后,仅供DataProxy对象所使用的方法。
参数项:
|
JsonReader | |
readRecords
(
[Object o]
)
: Object
由一个JSON对象产生一个包含Ext.data.Records的对...
由一个JSON对象产生一个包含Ext.data.Records的对象块。
参数项:
|
JsonReader | |
DataReader
(
Object meta,
Object recordType
)
: Ext.data.DataReader
构造器
构造器
参数项:
|
DataReader | |