ExtJS4.2学习(4)——基础知识之Model篇

本次我们会一起讨论ExtJS基础知识的ModelModel相当于 DB中的table 或 JAVA 中的Class

我们就以下几点进行讨论,首先是如何创建Model,其次是 Validations验证,再者会简单介绍下一对多等概念。

一、如何创建Model

创建Model有几种方式:

方式一://我们利用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'}
]
});

二、实例化Model对象

除了我们之前说过的newExt.create方法外,在这里还有一种创建Model对象的方法是:

var p2 = Ext.ModelMgr.create({
name:'uaa',
age:26,
email:'aaa@123.com'
},'person');//第二个参数是类的名称

三、Validations验证

Ext.define("person",{
extend:"Ext.data.Model",
fields:[
{name:'name',type:'auto'},
{name:'age',type:'int'},
{name:'email',type:'auto'}
],
validations:[//通过在声明类的时候,添加一些关于验证的方法
  //如下:type就是根据什么来验证 (length长度;age 年龄[自定义])
//field是对哪个属性进行验证
//min 最小
//max 最大
{type:"length",field:"name",min:2,max:6},
{type:'age',field:"age",min:0,max:150}
]
});

源码中的示例:

四、apply自定义validation方法

//扩展 也就是我们自定义验证机制的的一个新的验证方法
//apply :Ext扩展原有对象
//apply :第一个参数,原有对象;第二个参数,要改造的属性;第三个参数,传入默认的值
//这个地方我们可以通过看它源码如何写,然后比着写
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数据出现的了错误'
});

以上就是给validations对象加了一个参数是age,里边的函数,就是验证逻辑;ageMessage:是说明了错误的提示信息。

执行验证:

对象.validate();

代码如下:

obj.validate();

五、Model的一对多和多对一

Model中有一对多和多对一的配置,这里我们简单的做一下介绍,后边会做详细介绍;

(function(){
Ext.onReady(function(){
//类 老师
Ext.regModel("teacher",{
fideld:[
{name:'teacherId',type:"int"},
{name:'name',type:"auto"}
],
//设定这两个类之间一对多的关系
hasMany:{
 model: 'student',
     name : 'getStudent',//如果不写这个name,可以通过t.students得到student的一个数据集合
       	  filterProperty: 'teacher_Id'//关联的字段
}
});
//学生
Ext.regModel("student",{
fideld:[
{name:'studentId',type:"int"},
{name:'name',type:"auto"},
{name:"teacher_Id",type:'int'}
]
});
//t.students 得到子类的一个store数据集合
})
})();

其中就是利用属性hasMany,在代码中有详细解释。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值