`

【转】ExtJS 4.*基础概念总结(基于Ext4.2.1)

阅读更多
 
研究了一下ExtJS-4,发现这个框架很强大,总结一下,和大家分享分享,理解不到位的地方大家多多指正
1. Ext.application
2. Ext.onReady()
3. Ext.define()
4. Ext.data.proxy.Proxy
5. Ext的组合属性-mixins
6. Ext.create()
7. Ext.ComponentQuery、refs:
8. Init: function(){}
9. Ext.Class.alias
10. Ext.AbstractComponent -> xtype
11. this.callParent(arguments)
12. Ext.data.Model.validations: 合法性验证
13. 动态类加载


01 //指定Ext Framework 类加载路径
02 Ext.Loader.setConfig({enabled:true, paths:{Hongbo:"app"}});
03  
04 Ext.application(
05 {
06     //定义一个全局命名空间 Hongbo
07     name: 'Hongbo',
08  
09 //自动创建一个 Hongbo.view.Viewport 实例目标直接对应app/view/目录下的//Viewport.js
10     autoCreateViewport: true,
11  
12     controllers:
13     [
14         'frame.C_Frame'//#C_Frame#2013/07/01 指定控制器
15     ]
16 });

01 <script type="text/javascript">
02     var fn = function()
03     {
04         alert("此用户的名字是:" + this.name);
05     }
06     var user = {
07         name : "屌缌周"
08     }
09     Ext.onReady(fn , user);
10 </script>

01 <script type="text/javascript">
02     Ext.define("Hongbo.Person" ,
03             // 该对象用于为Hongbo.Person类指定属性
04             {
05                 name:"匿名",
06                 age:0,
07                 walk:function()
08                 {
09                     alert(this.name + "正在慢慢地走...");
10                 }
11             }, function() // 指定类创建成功的回调函数
12             {
13                 alert("Hongbo.Person类创建成功!");
14                 // 该回调函数中的this代表了Hongbo.Person类本身
15                 alert(this.self == Hongbo.Person.Class);
16             });
17     var p = new Hongbo.Person();
18     p.walk();
19 </script>

01 Ext.define("MyClass.A", {
02      showA: function(){
03           console.log("A");
04      }
05 });
06 Ext.define("MyClass.B", {
07      showB: function(){
08           console.log("B");
09      }
10 });
11 Ext.define("MyClass.C", {
12      mixins: {
13           classA: "MyClass.A",
14           classB: "MyClass.B"
15      },
16      showC: function(){
17           console.log("C");
18      }
19 });
20 var objC = Ext.create("MyClass.C");
21 objC.showA(); // 控制台结果:A
22 objC.showB(); // 控制台结果:B
23 objC.showC(); // 控制台结果:C

01 <script type="text/javascript">
02 Ext.define("Hongbo.User",
03     {
04         // 定义静态成员,这些静态成员可以被子类继承
05         config: {
06             name:"fkjava",
07             password:"8888"
08         },
09         // 定义构造器,直接接受config指定的选项
10         constructor: function(cfg)
11         {
12             this.initConfig(cfg);
13         }
14     });
15 // 创建一个Hongbo.User对象
16 var user = Ext.create("Hongbo.User",
17     {
18         name: "屌缌周",
19         password: "1234"
20     });
21 alert(user.name + "-->" + user.password);
22 </script>






01 Ext.define('MyApp.CoolPanel', {
02     extend: 'Ext.panel.Panel',
03     alias: ['widget.coolpanel'],
04     title: 'Yeah!'
05 });
06  
07 // Using Ext.create
08 Ext.create('widget.coolpanel');
09  
10 // Using the shorthand for defining widgets by xtype
11 Ext.widget('panel', {
12     items: [
13         {xtype: 'coolpanel', html: 'Foo'},
14         {xtype: 'coolpanel', html: 'Bar'}
15     ]
16 });


01 items: [
02      Ext.create('Ext.form.field.Text',
03      {
04          fieldLabel: 'Foo'
05      }),
06      Ext.create('Ext.form.field.Text',
07     {
08          fieldLabel: 'Bar'
09      }),
10      Ext.create('Ext.form.field.Number',
11      {
12          fieldLabel: 'Num'
13      })
14  ]
15 上面的创建方式改用:xtype
16  
17  items: [
18      {
19          xtype: 'textfield',
20          fieldLabel: 'Foo'
21      },
22      {
23          xtype: 'textfield',
24          fieldLabel: 'Bar'
25      },
26      {
27          xtype: 'numberfield',
28          fieldLabel: 'Num'
29      }
30  ]


01 Ext.define("Patient",
02 {
03     extend: "Ext.data.Model",
04     fields:
05     [
06         {name:'id'},
07         {name:'dwdm'},    //单位代码
08         {name:'dwccm'},  //单位层次码
09         {name:'dwqc'}
10     ],
11     validations:
12     [
13         {
14             field: "age",
15             type: "presence"
16         },
17         {
18             field: "name",
19             type: "presence"
20         },
21         {
22             field: "name",
23             type: "length", min: 2, max: 60
24         },
25         {
26             field: "name",
27             type: "format", matcher: /([a-z ]+)/
28         },
29         {
30             field: "gender",
31             type: "inclusion", list: ['M', 'F']
32         },
33         {
34             field: "weight",
35             type: "exclusion", list: [0]
36         },
37         {
38             field: "email",
39             type: "email"
40         }
41     ]
42 });
43     var p = Ext.create("Patient",
44     {
45         name: "L",
46         phone: "9876-5432",
47         gender: "Unknown",
48         birthday: "95/26/1986"
49     });
50  
51     var errors = p.validate();
52     errors.isValid();




转自:http://www.open-open.com/home/space.php?uid=135360&do=blog&id=11658

分享到:
评论

相关推荐

    ext-4.2.1-gpl.7z

    标题中的"ext-4.2.1-gpl.7z"指的是一个开源的软件扩展库,采用GNU General Public License(GPL)版本4.2.1发布,并被压缩为7z格式的文件。7z是一种高压缩率的文件存档格式,由7-Zip软件创建,能有效地存储大量数据...

    EXT安装包4.2.1-1

    EXT4.2.1是一个广泛使用的JavaScript框架,主要用于构建用户界面和富互联网应用程序(RIAs)。这个安装包可能包含了EXT的各个组件、示例、文档和必要的库文件,以帮助开发者快速搭建功能丰富的Web应用。 EXT的核心...

    ext-4.2.1-commercial.zip

    EXTJS是Sencha公司开发的一款基于JavaScript的富客户端应用程序框架,专用于构建现代Web应用程序的用户界面。在本文中,我们将深入探讨EXTJS 4.2.1商业版及其核心特性,以及它如何帮助开发者创建功能丰富的交互式...

    前端组件ext-4.2.1-gpl.zip

    总结来说,"ext-4.2.1-gpl.zip"是一个完整的ExtJS 4.2.1版本安装包,包含丰富的UI组件、示例、文档和工具,适合Web前端开发者构建功能强大、界面美观的富客户端应用。使用这个库,开发者可以快速搭建高效、易用的Web...

    ExtJS文件包

    ExtJS是一种广泛应用于Web开发的JavaScript库,专用于构建富客户端应用程序。该库以其强大的组件模型、丰富的用户界面(UI)控件和高度可定制性而著名。在提供的压缩包"ext-4.2.1.883"中,包含的是Ext JS的4.2.1.883...

    ExtJs4.2.1年月日时分秒、时分秒控件

    在4.2.1版本中,它提供了丰富的组件库,包括日期和时间选择器。在标题提到的"年月日时分秒、时分秒控件",我们可以理解为这是ExtJS中的日期选择器和时间选择器组件,用于用户友好的日期和时间输入。 1. **日期选择...

    extjs4.2.1

    extjs是个很好的js框架。里面含有好多的例子。你能绘制好多不同种类的图形。

    Ext JS 4.2.1 正式版

    4. **示例**:示例文件通常包含多种预设的应用场景,演示了Ext JS组件的不同用法和组合。这些示例涵盖了从基本的按钮、表格到复杂的图表和数据网格等各类组件,是学习和理解Ext JS功能的最佳途径。 在4.2.1版本中,...

    extjs-4.2.1

    ext-4.2.1ext-4.2.1ext-4.2.1ext-4.2.1ext-4.2.1ext-4.2.1ext-4.2.1

    ext-4.2.1-gpl.zip

    ExtJs4环境,不包括例子,太大了没法上传

    extjs 4.2 开发 参考书

    在压缩包中的`ext-4.2.1.883`文件可能包含了ExtJS 4.2.1的源代码和资源文件,这将有助于你深入研究每个组件的内部工作原理,调试代码,甚至自定义和扩展框架功能。通过结合书籍内容和源码学习,将能更全面地掌握...

    [免费] extjs 4.2.1 api文档

    extjs 4.2.1 api文档

    extjs grid

    在EXT4.2.1这个压缩包中,可能包含了EXTJS 4.2.1的完整库文件、示例代码、文档和其他资源,可以帮助开发者快速上手EXTJS Grid的开发。通过学习和实践这些资源,开发者能够熟练掌握EXTJS Grid的使用,构建出功能强大...

    ext-4.2.1.883.jsb2

    从spket IDE 官网下载。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.*版本。spket自动提示ExtJs4,需要ext4.2.1.jsp2文件。

    ExtJs运行环境

    总结一下,"ExtJs运行环境"是一个包含了运行和开发基于ExtJs 4.2.1应用所需的所有元素的集合。开发者可以通过这个环境快速搭建并运行Web应用程序,利用其丰富的组件库和强大的数据绑定功能,创建出高质量、响应式的...

    ext4.js 打包 最新文件

    注意:Extjs4.XX的只能用,Sencha Cmd 4.0.5 (Windows) 来打包,不然运行的时候会报错 需要JDK1.6 或 JDK1.7,测试用1.8也能正常运行,注意这点即可。 1.2Sencha安装 路径:D:\Sencha,安装后目录如下图: 1.3Ruby...

    Ext4.2.1源码包2(共2)

    Ext4.2.1源码包2(共2) 包含API,Example,Src

    extjs4.2.1 tabPanel刷新及关闭标签

    ### ExtJS 4.2.1 TabPanel 刷新与关闭标签功能详解 #### TabPanel 组件简介 在ExtJS框架中,`TabPanel`组件是一个非常实用且强大的UI控件,它允许用户在一个界面上组织多个相关的视图或面板,并通过标签页的形式...

    无废话ExtJs 教程十[下拉列表:Combobox]

    ExtJS 是一个强大的JavaScript 库,专用于构建富客户端应用程序。在ExtJS中,下拉列表(Combobox)是常见的组件之一,它结合了输入框和下拉菜单的功能,允许用户进行选择或自由输入。本教程将深入探讨ExtJS中的...

Global site tag (gtag.js) - Google Analytics