Ext.data.Model

本文详细介绍了ExtJS 4.0中的数据模型概念及其应用,包括如何使用Ext.define创建模型类,通过不同方式实例化模型,以及如何进行数据验证。此外,还涉及了简单的数据代理(proxy)配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据模型基本要讲三个大部分 model   proxy   store

1.普通Molde的创建
数据模型对真实世界中对事物在系统中的反应   extjs4.0中的mode相当于 DB中的table 或 JAVA 中的Class
2.利用Ext.regModel创建模型
3.创建model的实例
3中实例化对象的方法
(function(){
	Ext.onReady(function(){
		//我们利用Ext.define来创建我们的模型类
		//DB table person(name,age,email)
		Ext.define("person",{
			extend:"Ext.data.Model",
			fields:[
				{name:'name',type:'auto'},
				{name:'age',type:'int'},
				{name:'email',type:'auto'}
			]
		});
		//MVC模式中model一定是M层
		Ext.regModel("user",{
			fields:[
				{name:'name',type:'auto'},
				{name:'age',type:'int'},
				{name:'email',type:'auto'}
			]
		});
		//实例化我们的person类
		//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());
	});
})();






4.Validations
5.自定一验证器

(function(){
	Ext.data.validations.lengthMessage = "错误的长度";
	Ext.onReady(function(){
		//扩展也就是我们自定义验证机制的的一个新的验证方法
		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:'age数据出现的了错误'
		});
		
		
		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"));
	});
	/**
	 * name 2~6
	 * set(String name){
	 * 	 if(){
	 * 	 }else{
	 * 	 }
	 * }
	 */
	//age 不能小于0也不能大于150
})();



6.简单数据代理,详细的代理proxy要再后面课程讲
proxy 他就是来完成我们数据的CRUD
7.Molde的一对多和多对一  在这我们先简单了解,在讲完Ajax之后我们在深入学习


(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, {
	        scope: this,
	        failure: function(record, operation) {
	        },
	        success: function(record, operation) {
	        	alert(record.data.name);
	        },
	        callback: function(record, operation) {
	        }
    	});
	})
})();





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值