Reader:主要用于将proxy数据代理读取的数据按照不同的规则进行解析,将解析好的数据保持到Model(数据模型类)中
结构图 
Ext.data.reader.Reader  读取器的根类
Ext.data.reader.Json JSON格式的读取器
Ext.data.reader.Array  扩展JSON的Array读取器
Ext.data.reade.Xml  XML格式的读取器
Writer
结构图:
Ext.data.writer.Writer
Ext.data.writer.Json  对象被解释成JSON的形式传到后台
Ext.data.writer.Xml   对象被解释成XML的形式传到后台
--------------------------------------------------------------------------------------
这个例子主要讲:模型中的关系(hasMany,belongsTo),reader(type,root,implicitIncludes,totalProperty,record)
readerJson.js
  1. (function(){
  2. Ext.onReady(function(){
  3. var userData = {
  4. //total:200,
  5. count:250,
  6. user:[{auditor:'ynfengcheng',info:{
  7. userID:'1',
  8. name:'uspcat.com',
  9. orders:[
  10. {id:'001',name:'pen'},
  11. {id:'002',name:'book'}
  12. ]
  13. }}]
  14. };
  15. //model
  16. Ext.regModel("user",{
  17. fields:[
  18. {name:'userID',type:'string'},
  19. {name:'name',type:'string'}
  20. ],
  21. hasMany:{model:'order'}
  22. });
  23. Ext.regModel("order",{
  24. fields:[
  25. {name:'id',type:'string'},
  26. {name:'name',type:'string'}
  27. ],
  28. belongsTo:{type:'belongTo',model:'user'}
  29. });
  30. var mproxy = Ext.create("Ext.data.proxy.Memory",{
  31. model:'user',
  32. data:userData,
  33. reader:{
  34. type:'json',
  35. root:'user',
  36. implicitIncludes:true,
  37. totalProperty:'count',
  38. record:'info'//服务器返回的数据可能很复杂,用record可以删选出有用的数据信息,装载model中
  39. }
  40. });
  41. mproxy.read(new Ext.data.Operation(),function(result){
  42. var datas = result.resultSet.records;
  43. console.log(result.resultSet);
  44. console.log(result.resultSet.total);
  45. Ext.Array.each(datas,function(model){
  46. console.log(model.get("name"));
  47. });
  48. var user = result.resultSet.records[0];
  49. var orders = user.orders();
  50. orders.each(function(order){
  51. console.log(order.get('name'));
  52. })
  53. });
  54. });
  55. })();
运行结果:

constructor {total: 250, count: 1, records: Array[1], success: true, message: undefined…}

250

uspcat.com

pen

book

-------------------------------------------------------------------------------------
这个例子主要讲reader(xml)
readerxml.js
  1. (function(){
  2. Ext.onReady(function(){
  3. Ext.regModel("user",{
  4. fields:[
  5. {name:'name'},
  6. {name:'id'}
  7. ],
  8. proxy:{
  9. type:'ajax',
  10. url:'users.xml',
  11. reader:{
  12. type:'xml',
  13. record:'user'
  14. }
  15. }
  16. });
  17. var user = Ext.ModelManager.getModel("user");
  18. user.load(1,{
  19. success:function(model){
  20. console.log(model);
  21. console.log(model.get('name'));
  22. }
  23. });
  24. });
  25. })();
users.xml
  1. <users>
  2. <user>
  3. <name>uspcat.com</name>
  4. <id>00100</id>
  5. </user>
  6. </users>
运行结果:

constructor {internalId: "00100", raw: <user>, data: Object, modified: Object, hasListeners: HasListeners…}

uspcat.com

-----------------------------------------------------------------------------
这个例子主要讲reader(array),Ext.ModelManager.getModel(load)
readerarray.js
  1. Ext.onReady(function(){
  2. Ext.regModel("person",{
  3. fields:[
  4. 'name','age'
  5. //{name:'name'},
  6. //{name:'age'}
  7. ],
  8. proxy:{
  9. type:'ajax',
  10. url:'person.jsp',
  11. reader:{
  12. type:'array'
  13. }
  14. }
  15. });
  16. var person = Ext.ModelManager.getModel("person");
  17. person.load(1,{
  18. success:function(model){
  19. console.log(model);
  20. console.log(model.get('name'));
  21. }
  22. });
  23. });
person.jsp
  1. <%@page language="java" contentType="text/html" pageEncoding="UTF-8"%>
  2. <%
  3. response.getWriter().write("[['yengpingfeng','26']]");
  4. %>
运行结果:

constructor {phantom: false, internalId: "ext-record-1", raw: Array[2], data: Object, modified: Object…}

yengpingfeng

---------------------------------------------------------------------------------
这个例子主要讲writer(xml,json)
writer.js
  1. Ext.onReady(function(){
  2. Ext.regModel("person",{
  3. fields:[
  4. 'name','age'
  5. ],
  6. proxy:{
  7. type:'ajax',
  8. url:'person.jsp',
  9. writer:{
  10. //type:'json'
  11. type:'xml'
  12. }
  13. }
  14. });
  15. Ext.ModelMgr.create({
  16. name:'uspcat.com',
  17. age:1
  18. },'person').save();
  19. });
运行结果(xml):

运行结果(xml):

转载于:https://blog.51cto.com/gzzjsoft/1069394

[05]EXTJS4.0的读写器reader,writer相关推荐

  1. 苹果html阅读器,设置Safari 10.0.2阅读器Reader字体

    设置Safari 10.0.2阅读器Reader字体 关闭SIP(系统完整性保护功能)才能保存Reader.html - 重启电脑,按住Command+R(直到出现苹果标志)进入Recovery Mo ...

  2. Windows操作系统下用vmware虚拟ubuntu系统测试USB IC卡读写器的说明

    读写器介绍:RFID读写器NFC发卡器WEB可编程NDEF文本/网址/智能海报/电话/启动-淘宝网 (taobao.com) 一.打开windows计算机管理 / 服务 / VMware USB Ar ...

  3. EF Core3.0+ 通过拦截器实现读写分离与SQL日志记录

    前言 本文主要是讲解EF Core3.0+ 通过拦截器实现读写分离与SQL日志记录 注意拦截器只有EF Core3.0+ 支持,2.1请考虑上下文工厂的形式实现. 说点题外话.. 一晃又大半年没更新技 ...

  4. 记录大坑:用Xamarin引入UHF读写器dll,报错: 所生成项目的处理器架构“MSIiL”与引用的Reader.dll处理器架构“x86”不匹配

    哎,太少人用VS的Xamarin开发了,而我正是摸索中的一个开发者,我都记不清楚遇到多少坑了,心累. 说回正事: 当你用Xamarin引入UHFRIFD读写器dll时,绝对报错,Xamarin框架问题 ...

  5. Go编程技巧--io.Reader/Writer

    Go原生的pkg中有一些核心的interface,其中io.Reader/Writer是比较常用的接口.很多原生的结构都围绕这个系列的接口展开,在实际的开发过程中,你会发现通过这个接口可以在多种不同的 ...

  6. 精密型工业级UHF超高频RFID读写器|读卡器JT7300的MODBUS协议说明

    JT7300外形采用工业设计,坚固耐用,符合恶劣的工业产线环境,防护等级达到IP66.射频采用自主知识产权砥发芯局...配以高性能标签识别篡法.采用标准接口RS232(可定制RS485或 Modbus ...

  7. 安卓Android下如何开发USB NFC读写器APP

    荣士第二代USB免驱动IC读写器IC-02支持Windows.安卓(Android).Linux系统,为方便IC-02读写器能快速的接入安卓(Android)系统,我们提供了各种安卓版本的So库及示例 ...

  8. 工业超高频读写器|读取器CK-UR12-E02使用POE交换机和博途软件如何与西门子PLC配置解决方案

    ProfiNet协议POE供电工业超高频读写器|读取器CK-UR12-E02是一款工业以太网通讯的超高频读写设备,带IO继电信号输入输出,广泛应用工业自动化生产领域 本文将以实际环境,介绍工业超高频读 ...

  9. golang中的io.Reader/Writer

    本文整理自Go编程技巧–io.Reader/Writer Go原生的包中有一些核心的interface,其中io.Reader/Writer是比较常用的接口.很多原生的结构都围绕这个系列的接口展开,在 ...

最新文章

  1. SGU 260.Puzzle (异或高斯消元)
  2. Map.putAll()用法
  3. 使用IntelliJ IDEA看源码的时候,如何在优雅的查看类继承关系...【看这篇就够了】
  4. C语言 游戏远程call调用,创建远程线程 调用游戏所有call
  5. javascript怎么禁用浏览器后退按钮
  6. Nexus6P 设置Debug模式
  7. 三层中如何在服务器与客户端之间传输自定义的'Record'类型数据的例子
  8. 43.一维卷积-航空公司评论情感预测
  9. pytorch拟合函数
  10. 记住密码的实现的2个方案
  11. 剪映怎么把英文字幕翻译成中文?(附视频教程+字幕翻译工具)
  12. 递归应用之谢尔宾斯基三角形Python
  13. KSO-纯CSS全屏图片,全屏背景图,自适应
  14. PHP面试总结 v2018.08.24
  15. MIMIC-ivSQL查询策略-总结篇
  16. HTML5系列代码:一个完整简单的页面
  17. Python学习:Python分析钉钉评论(一)爬取数据
  18. 283移动零之Leecode—数组篇(双指针)
  19. 水淼·关键词网址采集器
  20. js打印html5,控制台打印文字效果js插件-typed.js

热门文章

  1. 河北省重大系统征集系统案例分析
  2. 《Hadoop技术详解》一导读
  3. TTL电平、CMOS电平、RS232电平的区别
  4. 1-2 Zabbix web界面支持中文
  5. Javascript类的写法
  6. Python中读取、显示和保存图片的方法
  7. Mp3写入专辑图片(Kotlin)
  8. leetcode-79-单词搜索(用dfs解决)
  9. 在ECS上使用Windows “跨区卷”、“条带卷”讨论以及扩容操作
  10. js不完全入门之数组