jQuery技术

移花接木 实例讲解Ext JS控件的扩展

字号+ 作者: 来源: 2014-11-16 22:49 我要评论( )

本文介绍了Ext的基本概念以及扩展Ext的一般方法,通过三个应用场景,详细描述了如何从已有的Ext控件出发,借鉴其他控件的功能,开发出满足实际需要的新控件。本文的目的,旨在抛

Ext JS是一种强大的JavaScript库,可以用来开发RIA(Rich Internet Applications),也即富客户端的Ajax应用,是一个与后台技术无关的前端Ajax框架

Ext JS最开始基于YUI(Yahoo!UserInterfaceLibrary)技术,由开发人员JackSlocum开发,通过参考JavaSwing等机制来组织可视化组件,无论从UI界面上CSS样式的应用,到数据解析上的异常处理,都可算是一个非常优秀的Web开发框架。

对于大多数程序员来说,我们没有任何美术功底,公司的很多项目也没有配备美工,要想开发吸引人眼球的用户界面,一直以来不是一件容易的事情。但是Ext的出现使得开发美观的界面变得容易,Ext提供了表格、树、布局、按钮等很多外观绚丽、功能强大的控件,为我们的日常开发工作节约了大量的时间和精力。更重要的是这个框架是完全面向对象且可扩展的,通过对现有的库的功能进行修改或加入新的功能,来实现Ext框架中没有的功能。

扩展Ext组件

扩展(extension)在Ext中就是指衍生的子类。假设我们已经有一个附有一些方法的基类,现在欲加入新方法。我们可以利用框架的继承特性和JavaScript创建新类的语言特性组合新的一个类。

Ext提供了这样的一个实用函数Ext.extend在Ext框架中实现类继承的机制。这赋予了扩展任何JavaScript基类的能力,而无须对类自身进行代码的修改,扩展Ext组件这是个较理想的方法。

要从一个现有的类创建出一个新类,首先要通过一个函数声明新类的构造器,然后调用新类属性所共享的扩展方法。这些共享的属性通常是方法,但是如果要在实例之间共享数据,应该也一同声明。

JavaScript并没有提供一个自动的调用父类构造器的机制,所以必须通过属性superclass在构造器中显式调用父类。第一个参数总是this,以保证构造器工作在调用函数的作用域。

  1. 清单1.扩展Ext组件的基本方法  
  2.       
  3. MyNewClass=function(arg1,arg2,etc){  
  4. //显式调用父类的构造函数  
  5. MyNewClass.superclass.constructor.call(this,arg1,arg2,etc);  
  6. };  
  7. Ext.extend(MyNewClass,SomeBaseClass,{  
  8. myNewFn1:function(){  
  9. //etc.  
  10. },  
  11. myNewFn2:function(){  
  12. //etc.  
  13. }  
  14. }); 

使用时,我们需要实例化对象:

  1. 清单2.实例化新的组件对象  
  2.       
  3. varmyObject=newMyNewClass(arg1,arg2,etc); 

掌握了扩展Ext组件的基本方法之后,我们就可以随意构造满足特定需求的组件。然而Ext里已有的组件和示例永远是我们取之不尽,用之不竭的创造源泉。本文以三个Ext组件为基础,“嫁接”了其他组件的功能,形成三个新的组件,实现了现有Ext组件没有的功能。本文的目的,旨在抛砖引玉,希望能给初学Ext的同仁们一点启发和参考,开发出更多、功能更强大的组件。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • snabbt.js 强大的jQuery动画库插件 -HTML5功能

    snabbt.js 强大的jQuery动画库插件 -HTML5功能

    2016-01-19 11:05

  • 后台管理区域及分离、Js压缩、css、jquery扩展

    后台管理区域及分离、Js压缩、css、jquery扩展

    2016-01-19 09:06

  • (2) 一个很全的 案例,可以共研究学习,提高js技巧,让你js水平

    (2) 一个很全的 案例,可以共研究学习,提高js技巧,让你js水平

    2016-01-18 16:01

  • 应用jQuery技术读取经过MappingJacksonJsonView转化的集合对象

    应用jQuery技术读取经过MappingJacksonJsonView转化的集合对象

    2016-01-18 11:18

网友点评