ExtJS之 数据模型
Model
1.首先定义 一个 User的数据模型
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [ //定义字段
{ name: 'name', type: 'string' },
{ name: 'age', type: 'int' },
{ name: 'phone', type: 'string' },
{ name: 'alive', type: 'boolean', defaultValue: true }
],changeName: function () { //定义的方法
var oldName = this.get('name'), //获取 当前实例的 name字段的值
newName = oldName + " The Barbarian";this.set('name', newName); //设置name字段的值
}
});2.实例化一个User对象
var u = Ext.ModelManager.create({ //实例化对象
name: 'gao', //字段和其对应的值
age: 12,
phone: '222-22'
}, 'User'); //说明,是哪个类的对象
alert(u.get('name'));
var newname = u.changeName(); 通过调用方法修改name字段,赋值给 newname
alert(u.get('name'));
数据验证:
1.创建 user模型
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{ name: 'name', type: 'string' },
{ name: 'age', type: 'int' },
{ name: 'phone', type: 'string' },
{ name: 'gender', type: 'string' },
{ name: 'username', type: 'string' },
{ name: 'alive', type: 'boolean', defaultValue: true }
],validations: [ //定义验证
{ type: 'presence', field: 'age' },
{ type: 'length', field: 'name', min: 2 },
{ type: 'inclusion', field: 'gender', list: ['Male', 'Female'] },
{ type: 'exclusion', field: 'username', list: ['Admin', 'Operator'] },
{ type: 'format', field: 'username', matcher: /([a-z]+)[0-9]{2,3}/ }
]
});2.实例化对象
var instance = Ext.ModelManager.create({
name: 'Ed',
gender: 'man',
username: 'edspencer'
}, 'User');3.获取错误信息,并循环展示;
var errors = instance.validate(); //调用validate方法,返回 Ext.data.Errors 对象.
var message = [];
errors.each(function (v) {message.push(v.field + ':' + v.message);
});
alert(message.join('\n'));
代理:
1.创建User模型
Ext.define('User', {
extend: 'Ext.data.Model',
fields: ['id', 'name', 'email'],proxy: { //定义代理
type: 'rest',
url: 'Handler.ashx'
}
});//get a reference to the User model class
var User = Ext.ModelManager.getModel('User');
User.load(123, { //通过代理读取数据
success: function (user) {
alert(user.getId());
}
});