当前位置:编程学习 > JS >>

ExtJS4.x数据模型之Model

1. 基本概述
    ExtJS不仅有令人眩目的UI组件还有非常完善的数据模型,它将整个数据读取过程分解为几个相互配合的独立部分,可以根据数据结构的不同和获取方式的不同,对这些部分进行灵活的组合,最终达到灵活使用数据的目的。
    其中,Ext.data.Model数据实体模型是真实世界中实体对象在应用系统中的反映,它包含字段集和处理数据的函数,它的前身是ExtJS 3.x以及以前版本中的Ext.data.Record类,如图:
  
2. 创建、实例化Model
    ExtJS4.x数据模型中的Model其实可以简单的理解为DB中的Table、Java中的Class等,我们通过一个简单的例子来了解下。
1. (function() {
2.     Ext.onReady(function() {
3.         Ext.define('person', {
4.             extend: 'Ext.data.Model',
5.             fields: [{
6.                 name: 'name',
7.                 type: 'auto'
8.             }, {
9.                 name: 'age',
10.                 type: 'int'
11.             }, {
12.                 name: 'email',
13.                 type: 'auto'
14.             }]
15.         });
16. 
17.         Ext.regModel('user', {
18.             fields: [{
19.                 name: 'name',
20.                 type: 'auto'
21.             }, {
22.                 name: 'age',
23.                 type: 'int'
24.             }, {
25.                 name: 'email',
26.                 type: 'auto'
27.             }]
28.         });
29. 
30.         var p = new person({
31.             name: 'Elvin.Cracker',
32.             age.com'
34.         });: 24,
33.             email: 'elvin.cracker@gmail
35.         // alert(p.get('name'));
36. 
37.         var p1 = Ext.create('person', {
38.             name: 'Elvin.Cracker',
39.             age: 24,
40.             email: 'elvin.cracker@gmail.com'
41.         });
42.         // alert(p1.get('age'));
43. 
44.         // var p = Ext.ModelManager.create({
45.         var p2 = Ext.ModelMgr.create({
46.             name: 'Elvin.Cracker',
47.             age: 24,
48.             email: 'elvin.cracker@gmail.com'
49.         }, 'person');
50.         // alert(p2.get('email'));
51. 
52.         alert(person.getName());
53.     });
54. })();
    在上面的例子中,我们介绍了两种方式创建Model类,一种是使用Ext.define的方式,另外一种是Ext.regModel的方式。在MVC的设计过程当中第一种显然不是最合适的,因为每次都要写继承Ext.data.Model,其中Ext.regModel的返回值其实就是Ext.data.Model对象。www.zzzyk.com
    除此之外,我们也介绍了三种方式创建Ext.data.Model的实例对象,第一种方式通过new关键字创建,第二种方式使用Ext.create方式创建,第三种使用Model的统一管理类Ext.ModelManager来创建,这个使用的是Ext.ModelManager的别名Ext.ModelMgr,效果是一样的。
3. 数据验证
    数据验证(Validation)也是非常重要、而且使用频繁的一个知识点,我们还是先通过一个简单的例子了解下。
1. (function() {
2.     Ext.data.validations.lengthMessage = '错误的长度';
3.     Ext.onReady(function() {
4.         Ext.apply(Ext.data.validations, {
5.             age: function(config, value) {
6.                 if (value === undefined || value === null) {
7.                     return false;
8.                 }
9. 
10.                 var min = config.min;
11.                 var max = config.max;
12.                 if (min <= value && value <= max) {
13.                     return true;
14.                 } else {
15.                     this.ageMessage = this.ageMessage + ', 他(她)的范围应该在[' + min + '~' + max + ']';
16.                     return false;
17.     &nb

补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,