`
Notebookdong
  • 浏览: 122284 次
社区版块
存档分类
最新评论

Ext3.0 模块化

 
阅读更多

使用Ext3.0来做一个模块化的单页系统:

1.首先定义一个main.js用来编写我的们基类和主程序类,其中我们每个子模块都继承我们的基类并且重写基类的方法完成以实现我们的业务需要。主程序类是来对这些模块进行调用、处理的。

    

//定义一个命名空间,名字为myname;
Ext.namespace('myname');

//在myname中建立一个模板(基)类名为module这里有一个main属性和一个init方法;
myname.module = function(card){
    this.main = card;
    this.init();
};  
//将module类中的init方法设置为空方法;
Ext.extend(myname.module, Ext.util.Observable, {   
    init : Ext.emptyFn
});

/**模块既然是被主窗口加载进来的,那么相对这个模块来说它必然有个父窗口来显示它,我们把这个父窗口作为参数传给模块,
让它知道在哪里显示自己。这样对每个继承它的子类来说,this.main就是它的父窗口。 
模块基类还包含一个init方法,这个方法将被模块子类重载,模块子类的界面渲染就交给这个方法了。 
当然你还可以在这个基类中添加每个模块必需的公共属性和方法,让我们的模块实现高度统一。 */

//在myname中建立一个处理(主程序)类名为app;
myname.app = function(){
    this.init();
};
//重写app类中的init方法,并新加一个loadModel方法;
Ext.extend(myname.app, Ext.util.Observable, {   
    init: function(){
        var card =  new Ext.Panel({  
            id: 'docs',
            layout: 'fit'  
        }); 
  
        this.body = new Ext.Panel({
        	layout: 'card',
            region:'center',   
            margins: '2 5 5 0',
            border: false,
            activeItem: 0,
            autoScroll: true,   
            items: [card]   
        }); 

        var viewport = new Ext.Viewport({   
            layout:'border',   
            items:[
                this.body 
            ]   
        });
        this.loadMask = new Ext.LoadMask(this.body.body);
		//调用loadModel方法
        this.loadModel(windowid,card);
    },
   

    loadModel: function(id,card){  
        var model;       
        if(this[id]){
            model = new this[id](card);
        }else{
            this.loadMask.show();   
            Ext.Ajax.request({   
                method:'GET',
                url: 'modules/xxx.js',//大家可以想办法使用动态的方式把url传进来
                scope: this,   
                success: function(response){
				/**当请求完成,服务器会把请求的.js文件以字符串返回给我们,
					这个时候使用eval方法把里面的内容转换成function,
					并把这个方法添加到myname.app里面,
					其实他就是一个继承了我们模板类的子模块*/
                    this[id] = eval(response.responseText);   
                    model = new this[id](card);
            	    this.loadMask.hide(); 
                }   
            });
        }
    }
});   

Ext.onReady(function(){ 
	Ext.QuickTips.init();
	myApp = new myname.app();
});

 

2. 当把模板类与主程序类都定义好了之后就可以编写子模块,子模块才是真正的业务实现。

   子模块编写参考:http://microboat.iteye.com/blog/183149

分享到:
评论

相关推荐

    ext 3.0 中文API

    6. **Charts**:EXT 3.0 提供了图表组件,支持各种类型的图表,如柱状图、折线图、饼图等,可用于数据可视化。 7. **Ajax**:EXT内建的Ajax模块提供了一种简便的方式与服务器进行异步通信,可以处理JSON、XML等多种...

    ext 3.0源码+帮助文档chm

    事件监听器允许开发者在特定事件触发时执行相应的函数,提高了代码的可维护性和模块化。此外,EXT 3.0还引入了Ajax通信,支持异步与服务器交换数据,使得页面无需刷新即可更新内容,提升了用户体验。 EXT JS 3.0的...

    官方Ext3.0实例包

    1. 基于组件的架构:Ext3.0采用模块化设计,每个UI元素都是一个独立的组件,如面板、表格、表单等,方便复用和组合,提高了开发效率。 2. 强大的数据绑定:通过Data Package,Ext3.0支持与后台数据的双向绑定,能够...

    Ext3.0 api帮助文档

    - **Ext JS的类系统基于MVC模式,使用EXT.extend方法实现类的继承**,这使得代码复用和模块化成为可能。 - **配置对象(Configurations)**: 大多数类允许通过配置对象进行初始化,简化了组件的创建过程。 3. **...

    Ext3.0预览版!!!

    此外,Ext3.0保留了Ext2的兼容性,这意味着现有的Ext2文件系统可以直接升级到Ext3.0,而不需要格式化磁盘,这为用户提供了便利。升级过程简单,只需挂载文件系统并启用日志模式即可。 `ext3.0-dev.rar`这个文件很...

    ext3.0中文api

    6. **拖放功能**:EXT3.0的DragDrop模块允许用户实现元素的拖放操作,增强了交互性。 7. **国际化支持**:考虑到中文API的发布,EXT3.0应该包含了完善的国际化(i18n)支持,方便开发者为不同语言的用户提供本地化...

    Ext 3.0 中文API CHM

    11. **国际化支持**:Ext 3.0 提供了本地化支持,允许开发者轻松地将应用翻译成不同语言。 通过这个中文API CHM文件,开发者可以深入了解每个类的构造函数、配置选项、方法和事件,以便于在实际项目中有效地利用Ext...

    Ext3.0英文API.CHM

    Ext3.0英文API.CHM是一个关于Ext JS 3.0的离线帮助文档,它包含了这个JavaScript库的所有核心API接口和组件的详细说明。Ext JS是一个强大的客户端JavaScript框架,常用于构建富互联网应用程序(RIA)。这个CHM文件是...

    ext-3.0框架源码

    1. **组件化**:EXT 3.0提供了一整套可复用的UI组件,如表格(Grid)、面板(Panel)、窗口(Window)、表单(Form)、树形视图(Tree)、菜单(Menu)等,这些组件可以组合成复杂的应用界面。 2. **MVC架构**:EXT...

    ext—core3.0

    1. **组件化**:EXT Core 3.0 提供了高度模块化的组件系统,每个UI元素都可以作为一个独立的组件,方便组合和复用。这使得代码结构清晰,易于维护和扩展。 2. **数据绑定**:框架支持数据绑定机制,可以将UI组件与...

    extjs 3.0中文api ext.net 中文api

    5. **事件系统(Event System)**:组件之间通过事件进行交互,增强了可扩展性和模块化。 6. **拖放支持(Drag and Drop)**:允许用户通过拖放操作来交互,增强了用户体验。 **Ext.NET 中文API** Ext.NET是基于...

    struts2.1.8+spring2.5+hibernate3.2+ext3.0框架整合笔记(一)

    Ext3.0是一个JavaScript库,用于构建富客户端应用,它提供了丰富的UI组件和数据绑定功能。在Struts2应用中,Ext通常作为前端展示层,通过Ajax与后台Struts2 Action进行交互。Ext的JSONStore可以配合Struts2的...

    Ext-3.0 源代码

    4. **事件模型**:ExtJS的事件模型基于观察者模式,使得组件之间可以互相监听和响应事件,增强了代码的模块化和可维护性。 5. **AJAX和AjaxProxy**:Ext.Ajax类提供了发送异步请求的功能,而AjaxProxy是数据包的一...

    ext-3.0-rc1.1

    4. **可扩展性**:EXTJS采用模块化设计,允许开发者根据需求选择加载必要的组件,降低应用程序的大小和加载时间。 5. **主题化**:EXTJS支持多种预定义的主题,同时也允许自定义主题,以满足不同设计风格的需求。 ...

    Ext JS v3.0 RC1.1.rar

    这个模型允许开发者将小部件组合成更复杂的组件,同时保持代码的清晰和模块化。通过使用容器(Container)和布局管理器(Layout Manager),可以轻松组织和布局页面元素,确保应用界面的响应式和自适应性。 在应用...

    extjs3.0 API 中英

    这个压缩包中的`Ext3.0英文API.CHM`和`Ext 3.0 中文.CHM`文件是帮助文档,可以离线查看。CHM是Microsoft的 Compiled HTML Help 格式,是一种常见的帮助文档格式,包含索引、目录和内容,方便用户快速查找和学习ExtJS...

    SharpDevelop Reports 3.0.0.616 Source ,SharpDevelop analyze SharpPad_Ext

    它的源代码结构清晰,模块化设计使得开发者能够轻松地理解和扩展其功能。在3.0.0.616版本中,SharpDevelop引入了一系列改进和优化,增强了用户体验和开发效率。 SharpPad_Ext是SharpDevelop中的一个重要组件,它是...

    ext整理 ext整理 ext整理

    "09320660Ext3.0.rar"可能包含了EXTJS 3.0版本的相关资料。EXTJS 3.0是一个重要的版本,引入了许多新特性和改进。在这个版本中,EXTJS增强了对IE浏览器的支持,改进了数据网格组件,提供了更灵活的布局选项,并且...

    ext.jsb工具插件

    sdk.jsb3则是EXT库v4.0及以上版本的专用工具,EXT从4.0开始进入了一个全新的时代,其API进行了重大调整,引入了模块化和主题支持等新概念。sdk.jsb3不仅提供基本的混淆和压缩服务,还可能涉及对模块系统的优化,使...

    ExtJS 2.3/3.0 定制你所需要的模块

    总的来说,这篇博客文章可能会提供关于如何在ExtJS 2.3/3.0中进行模块化开发和自定义组件的实用指南,同时也会涉及源码理解和性能优化,对于那些希望深入掌握ExtJS的开发者来说,是非常有价值的资源。

Global site tag (gtag.js) - Google Analytics