?
?//两种创建model的方式 Ext.define("person",{ ???extend:"Ext.data.Model", ???fields:[ ????{name:'name',type:'auto'}, ????{name:'age',type:'int'}, ????{name:'email',type:'auto'} ???] ??}); ?? ??Ext.regModel("user",{ ???fields:[ ????{name:'name',type:'auto'}, ????{name:'age',type:'int'}, ????{name:'email',type:'auto'} ???] ??}); //三种实例化model的方式 //1.new关键字 ??var p = new person({ ???name:'uspcat.com', ???age:26, ???email:'yunfengcheng2008@126.com' ??}); ??//alert(p.get('name')); ??var p1 = Ext.create("person",{ ???name:'uspcat.com', ???age:26, ???email:'yunfengcheng2008@126.com' ??}); ??//alert(p1.get('age')); ??var p2 = Ext.ModelMgr.create({ ???name:'uspcat.com', ???age:26, ???email:'yunfengcheng2008@126.com' ??},'person'); ??//alert(p2.get('email')); ??//alert(p2.getName());//? class object.getClass.getName ??alert(person.getName());
??? 数据验证的方法
?
//设置全局错误信息 Ext.data.validations.lengthMessage = "错误的长度"; //定义验证方式 Ext.define("person",{ ???extend:"Ext.data.Model", ???fields:[ ????{name:'name',type:'auto'}, ????{name:'age',type:'int'}, ????{name:'email',type:'auto'} ???], ???validations:[ ????{type:"length",field:"name",min:2,max:6}, ????{type:'age',field:"age",min:0,max:150} ???] ??}); ??var p1 = Ext.create("person",{ ???name:'uspcat.com', ???age:-26, ???email:'yunfengcheng2008@126.com' ??});? ??var errors = p1.validate(); //调用验证方法 ??var errorInfo = []; ??errors.each(function(v){ ???errorInfo.push(v.field+"? "+v.message); //获取验证错误信息 ??}); ??alert(errorInfo.join("\n")); //自定义验证方法 Ext.apply(Ext.data.validations,{ ???age:function(config, value){ ????var min = config.min; ????var max = config.max; ????if(min <= value && value<=max){ ?????return true; ????}else{ ?????this.ageMessage = this.ageMessage+"他的范围应该是["+min+"~"+max+"]"; ?????return false; ????} ???}, ???ageMessage:'数据出现的了错误' ??}); //我觉得还可以有更好的方法 Ext.apply(Ext.data.validations,{ myValidate:function(config, value){ var validateFun = config.validateFun; return validateFun.call(value,config); }, myValidateMessage:'数据出现的了错误' }); Ext.define("person",{ extend:"Ext.data.Model", fields:[ {name:'name',type:'auto'}, {name:'age',type:'int'}, {name:'email',type:'auto'} ], validations:[ {type:"length",field:"name",min:2,max:6}, {type:'age',field:"myValidate",validateFun:function(v){ return v > 10 && v < 100; }}); var p1 = Ext.create("person",{ name:'uspcat.com', age:-26, email:'yunfengcheng2008@126.com' }); var errors = p1.validate(); //调用验证方法 var errorInfo = []; errors.each(function(v){ errorInfo.push(v.field+" "+v.message); //获取验证错误信息 }); alert(errorInfo.join("\n"));
??? proxy 代理
?
(function(){ Ext.onReady(function(){ Ext.define("person",{ extend:"Ext.data.Model", fields:[ {name:'name',type:'auto'}, {name:'age',type:'int'}, {name:'email',type:'auto'} ], proxy:{ type:'ajax', url:'person.jsp' } }); var p = Ext.ModelManager.getModel("person"); //加载数据 p.load(1, { //1 默认是传递给后台的参数 参数名称为id scope: this, failure: function(record, operation) { }, success: function(record, operation) { alert(record.data.name) }, callback: function(record, operation) { } }); }) })();
?
??