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());
}
});

posted @ 2012-02-27 14:56  高捍得  阅读(597)  评论(0编辑  收藏  举报