结构:
Modle中
结构图
Ext.data.reader.Reader 读取器的根类
Ext.data.reader.Json JSON格式的读取器
Ext.data.reader.Array 扩展JSON的Array读取器
Ext.data.reader.Xml XML格式的读取器
@Ext.data.reader.Json
(function(){ Ext.onReady(function(){ var userData = { //total : 200, count:250, user:[{auditor:'yunfengcheng',info:{ userID:'1', name:'uspcat.com', orders:[ {id:'001',name:'pen'}, {id:'002',name:'book'} ] }}] }; //model Ext.regModel("user",{ fields:[ {name:'userID',type:'string'}, {name:'name',type:'string'} ], hasMany: {model: 'order'} }); Ext.regModel("order",{ fields:[ {name:'id',type:'string'}, {name:'name',type:'string'} ], belongsTo: {type: 'belongsTo', model: 'user'} }); var mproxy = Ext.create("Ext.data.proxy.Memory",{ model:'user', data:userData, reader:{ //没有读去器的话,没法读取数据 type:'json', root:'user', //具体的数据,data(抛出count等描述信息) implicitIncludes:true, //是否级联 totalProperty:'count', //改变读取 描述总数的字段名,如total->count record : 'info'//服务器返回的数据可能很负载,用record可以筛选出有用的数据信息,装在带Model中 } }); mproxy.read(new Ext.data.Operation(),function(result){ var datas = result.resultSet.records; alert(result.resultSet.total); Ext.Array.each(datas,function(model){ alert(model.get('name')); }); //开始处理管理数据。 var user = result.resultSet.records[0]; //一个Store var orders = user.orders(); orders.each(function(order){ alert(order.get('name')) }); }) }); })();
@Ext.data.reader.Array
person.jsp
<%@page language="java" contentType="text/html" pageEncoding="UTF-8"%> <% response.getWriter().write("[['yunfengcheng',26]]"); %>
js:
Ext.onReady(function(){ Ext.regModel("person",{ fields:[ 'name','age' // {name:'name'}, // {name:'age'} ], proxy :{ type:'ajax', url:'person.jsp', reader:{ type:'array' } } }); var person = Ext.ModelManager.getModel('person'); person.load(1,{ success:function(model){ alert(model.get('name')) } }) });
@Ext.data.reader.Xml
users.xml
<users> <user> <name>uspcat.com</name> <id>00101</id> </user> </users>
js:
(function(){ Ext.onReady(function(){ Ext.regModel("user",{ fields:[ {name:'name'}, {name:'id'} ], proxy:{ type:'ajax', url:'users.xml', reader:{ type:'xml', record:'user' } } }); var user = Ext.ModelManager.getModel('user'); user.load(1,{ success:function(model){ alert(model) alert(model.get('id')) } }) }); })();
Writer
结构图
Ext.data.writer.Writer
Ext.data.writer.Json 对象被解释成JSON的形式传到后台
Ext.data.writer.Xml 对象被解释成XML的形式传到后台
@Ext.data.writer.Json
以POST方式向后台写入数据
Ext.onReady(function(){ Ext.regModel("person",{ fields:[ 'name','age' ], proxy :{ type:'ajax', url:'person.jsp', writer:{ //type:'json' type:'xml' } } }); Ext.ModelMgr.create({ //等于Ext.ModelMgr.create name:'uspcat.con', age:1 },'person').save(); })