日期:2014-05-16  浏览次数:20284 次

extjs 4 学习小结4
1 EXT JS 4的数据模型分为三类
   1) 实体模型 model
   2) 数据代理  proxy,用来处理数据的读取和保存,通过AJAX代理获得服务端的数据
   3) 数据读写器:Reader,Writer,用来读原始的数据到MODEL中。
   4)数据集:store,保存MODEL对象的客户端缓存,提供了对数据的过滤,排序,查找功能。

2)EXT.DATA.MODEL,前身为EXT 3中的ext.data.record类,进行了增强;
模型分为  fields:字段定义,proxy:数据代理,associations:模型管理  Validations:数据校验。


3)基本数据模型
    Ext.onReady(function(){
//注册用户数据模型User
Ext.regModel('User', {
    fields: [//定义模型字段
        {name: 'name',  type: 'string'},
        {name: 'age',   type: 'int'},
        {name: 'phone', type: 'string'}
    ]
});
//创建User模型的实体对象
var user = Ext.ModelMgr.create({
    name : 'tom',
    age  : 24,
    phone: '555-555-5555'
}, 'User');
//获取员工姓名
alert(user.get('name'));
});

4)ext.validations
    Ext.onReady(function(){
//定义默认的验证提示信息
Ext.data.validations.presenceMessage = '必须是有效值。';
Ext.data.validations.lengthMessage = '长度错误。';
Ext.data.validations.formatMessage = '格式错误。';
Ext.data.validations.inclusionMessage = '没有包括在可接受的数据中。';
Ext.data.validations.exclusionMessage = '不是可接受的值。';

//自定义数值范围验证
Ext.apply(Ext.data.validations,{
number : function(config, value){
if (value === undefined) {
            return false;
        }
            var min    = config.min,
                max    = config.max;
       
        if ((min && value < min) || (max && value > max)) {
            return false;
        } else {
            return true;
        }
},
numberMessage : '数值范围错误。'
});

//注册用户数据模型User
Ext.regModel('User', {
    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: 'number',  field: 'age', min : 30},
        {type: 'length',    field: 'name', min: 2},
        {type: 'inclusion', field: 'gender',   list: ['男', '女']},
     &nb