好多天没写博客了,最近工作一直很忙。。。
数据读取器主要用于将数据代理读取到的原始数据按照不同的规则进行解析,将解析后的数据保存在Model模型对象中。数据读取器相当于原始数据格式与Extjs标准数据格式之间的桥梁,它屏蔽了原始数据格式不同对程序开发造成的影响。在Extjs中提供的数据解析器主要有如下3种:
Ext.data.reader.Json JSON数据读取器
Ext.data.reader.Xml XML数据读取器
Ext.data.reader.Array 数组数据读取器
Ext.data.reader.Reader是读取器的父类,主要用于从数据源读取结构化数据,它有两个子类分别是JsonReader和XmlReader。下表列出了它的主要配置项和方法。
表1-1 Ext.data.reader.Reader主要配置项
配置项 | 参数类型 | 说明 |
idProperty | String | 设置作为数据唯一表示的字段名,默认为Model模型的id字段 |
implicitIncludes | Boolean | 设置是否级联读取数据,默认为true |
messageProperty | String | 设置获取响应信息的属性名 |
root | String | 设置返回信息的根名称,为必选项 |
successProperty | String | 设置获取成功状态的属性名,默认为success |
totalProperty | String | 设置获取记录总数的属性名,默认为total |
表1-2 Ext.data.reader.Reader主要方法
方法 | 说明 |
read(Object response):Ext.data.ResultSet | 读取响应对象,返回结果集 response:可以是一个XMLHttpRequest对象,可以是一个普通的Json对象 |
Ext.data.reader.Reader支持嵌套数据的读取,它会根据实体模型Model中关系API简历关联关系遍历响应数据。
Ext.data.reader.Json 是读取Json数据的数据读取器,它根据实体模型Model中字段定义的映射关系解析原始数据,形成记录集。
表 1-3 Ext.data.reader.Json 主要配置项
配置项 | 参数类型 | 说明 |
record | String | 定位在Json响应信息中发现记录数据的位置,一般情况下不需要该配置项 |
useSimpleAccessors | Boolean | 设置是否使用简单是陪方式,默认为false。 如属性foo.bar.baz在默认情况下会从root中找foo属性,然后在foo中找bar属性,在bar中找baz属性.在简单模式下会最为一个整体处理,不会拆分. |
方法 |
说明 |
readRecords(Object data):Ext.data.ResultSet | 从json对象中读取信息,返回结果集 data:数据对象,在该对象中包含与配置项root和titalProperty对应的属性,分别表示包含记录信息的数组和总记录数 |
Ext.data.reader.Xml 是读取xml文档格式信息的数据读取器,它根据实体模型Model中字段定义的映射关系解析原始信息,形成记录集。
注意:为了使浏览器可以正确的解析xml文档,必须设置相应的content-type类型为‘text/xml’
表1-5 Ext.data.reader.Xml 主要配置项
配置项 | 参数类型 | 说明 |
record | String | 包含记录信息元素的DomQuery路径 |
方法 | 说明 |
getData(Object date):Object readRecords(Object doc): Ext.data.ResultSet |
获取标准化的数据对象 从xml数据文档中读取信息,形成记录集 doc:xml数据文档对象 |
Ext.data.reader.Array继承自Ext.data.reader.Json,是读取二维数据信息的读取器,内层数组是一个包含字段数据的数据行,如果字段映射存在字段将根据它的下标取值到model中,如果字段映射不存在则字段按字段的原始位置进行取值。Ext.data.reader.Array的主要配置项和方法请参考Ext.data.reader.Json相关说明。
数据写入器主要用于将数据代理提交到服务器的数据进行编码,相当于Extjs标准数据格式与服务器数据格式之间的桥梁,他屏蔽了服务器端数据格式不同对程序开发造成的影响。在Extjs中提供的数据写入器有:
Ext.data.writer.Json Json写入器
Ext.data.writer.Xml xml写入器
Ext.data.writer.Writer 是数据写入器的父类,它负责处理请求对象,将数据转换为指定格式,对于客户端代理是不需要指定Writer 写入器的。
表2-1 Ext.data.writer.Writer 主要配置项
配置项 | 参数类型 | 说明 |
nameProperty | String | 设置发送到服务器数据的键值属性名 |
writerAllFields | Boolean | 设置是否向服务器写入所有字段,false则指包含被修改的字段,默认为true |
方法 | 说明 |
getRecordData(Object record):Object | 获取格式化之后的数据 record;需要发送的服务器记录对象 |
JSON格式的数据写入器,它会将实体模型model中的数据转化为json格式发送到服务器。
wirter:{ type:'json' }