/**
* Reader:主要是将proxy数据代理,读取的数据按照不同的规则进行解析,将解析好的数据保存在Model中 结构图
* 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的形式传到后台
*
*/
Ext.onReady(function() {
var userData = {
// total : 200,
count : 250,
user : {
userID : '1',
name : 'USA',
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',
implicitIncludes : true,
totalProperty : 'count'
}
});
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];
var orders = user.orders();
orders.each(function(order){
alert(order.get('name'));
});
});
})
/**
* Ext.data.xmlReader
*/
Ext.onReady(function() {
Ext.regModel("user", {
fields : [{
name : 'name'
}, {
name : 'id'
}],
proxy : {
type : 'ajax',
url : 'script/users.xml',
reader : {
type : 'xml',
record : 'user'// 返回xml中user对象
}
}
});
var user = Ext.ModelManager.getModel('user');
user.load(1, {
success : function(model) {
alert(model.get('id'));
}
});
})
/**
* Ext.data.reader.Array
*/
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'));
}
});
})
/**
* Extjs 2种writer介绍
* Ext.data.writer.Json 对象被解释成JSON形式传到后台
* Ext.data.writer.Xml 对象被解释成XML的形式传到后台
*
*/
Ext.onReady(function() {
Ext.regModel("person", {
fields : ['name', 'age'],
proxy : {
type : 'ajax',
url : 'person.jsp',
reader : {
type : 'array'
},
writer : {
//type : 'json'// 根据返回类型得到相应的数据格式
type:'xml'
}
}
});
Ext.ModelMgr.create({
name : 'ww.baidu.com',
age : 1
}, 'person').save();
})