Extjs4.0的讀寫器

Extjs的讀寫器

Reader:主要用於將proxy數據代理讀取的數據按照不同的規則進行解析,將解析好的數據保存到Medel中

結構圖:

Ext.data.reader.Reader 讀取器的根類

Ext.data.reader.Json JSON格式的讀取器 用模型在讀取

Ext.data.reader.Array 擴展JSON的Array讀取器

Ext.data.reader.Xml XML格式的讀取器

Writer

結構圖:

Ext.data.writer.Writer

Ext.data.writer.Json 對象被解釋成JSON的形式傳到後臺

Ext.data.writer.Xml 對象被解析成XML的形式傳到後臺

Reader 用Json來讀取

(function(){

Ext.onReady(function(){

//Reader的用法:將proxy數據代理讀取的數據按照不同的規則進行解析,將解析好的數據保存到Medel中

//一下采用的是內存式的數據結構

var userData = {

//total:200,

count:250,

//record的用法,如果在傳入值的時候有些東西是不需要的,可以用它來刪減

user:[{auditor:'laowang',info:{

userId:'1',

name:'laowang',

//訂單,一個用戶可以有多個訂單

orders:[

{id:'001',name:'pen'},

{id:'002',name:'book'}

]

}}]

};

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',

implicitIncludes:true,

totalProperty:'count',//totalProperty是把total上面的字母換掉自己想要的,但是在讀取的時候屬性的值,即total是不變的

record:'info'//對服務器返回的數據可能很複雜,利用record可以刪選出有用的信息裝在到model中

}

});

//運用內存代理來讀取user

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'));

});

//連讀,通過user讀取到的order是一個對象集合,不是一個數組

var user = result.resultSet.records[0];

var orders = user.orders();

orders.each(function(order){

alert(order.get('name'));

})

});

});

})();

2.Reader 用xml來讀取

(function(){

Ext.onReady(function(){

Ext.regModel("user",{

fields:[

{name:'id'},

{name:'name'}

],

//運用ajax代理,xml來讀取

proxy:{

type:'ajax',

url:'extLession/readerWriter/readerXml.xml',

reader:{

type:'xml',

record:'user'

}

}

});

//用模型管理器來創建模型

var proxml = Ext.ModelManager.getModel("user");

proxml.load(1,{

success:function(model){

alert(model.get('id'));

}

});

});

})();

Writer 寫 用json和xml寫

通過json的方式寫到後臺

(function(){

Ext.onReady(function(){

Ext.regModel("person",{

fields:[

'name','age'

],

proxy:{

type:'ajax',

url:'extLession/readerWriter/person.jsp',

writer:{

type:'json'

}

}

});

Ext.ModelManager.create({

name:'laowang',

age:26

},"person").save();

});

})();

寫入到後臺的格式爲:

如果把type換成xml,則效果爲:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章