Ext Js MVC系列二 利用Application和Viewport进行应用程序初始化和页面布局
2013-06-05 22:14
465 查看
通过上一篇我们已经对Ext js MVC框架开发有了一个大概的了解,这一篇将利用Application和Viewport进行应用程序的初始化和页面布局。我想从以下几方面来进行总结。
1,通过Ext.Loader开启动态加载功能
2,利用Application对象创建应用程序实例
3,利用Viewport和view进行页面布局
这个是Top面板的代码,其它三个面板都是一样,作为一个独立的view,需要的时候再实例化,这样就达到了view复用的目的。
Bottom面板
Left面板
Content面板
运行效果如图。
![](http://images.cnitblog.com/blog/311549/201306/05222638-fe13828d3a2443b4bc53e31e3fc6eccb.jpg)
这样页面的布局就算完成了,这里我们已经对view有一个初步的认识,它其实就是利用窗体控件panel,grid或form等进行用户界面展示,我们最好将每一个view都定义成一个独立的类,这样需要使用的时候去实例化就好了,这样达到了view复用的目的。下一篇我将总结如何利用view,store和model创建组件和数据交互。
1,通过Ext.Loader开启动态加载功能
2,利用Application对象创建应用程序实例
3,利用Viewport和view进行页面布局
通过Ext.Loader开启动态加载功能
通过Loader对象我们可以开启动态加载的依赖加载功能,我们一般通过它的setConfig方法开启动态加载,通过setPath设置加载路径,然后通过Ext.require方法加载相关类库。代码如下。/** 开启动态加载的依赖加载功能和设置插件的路径,并加载相关类库 **/ Ext.Loader.setConfig({ enabled: true });//开启动态加载的依赖加载功能,默认为false不开启 Ext.Loader.setPath('Ext.ux', '/Scripts/ux');//设置命名空间"Ext.ux"的路径 Ext.require(['Ext.ux.CheckColumn', //加载相关类库和它的直接依赖 'Ext.ux.grid.FiltersFeature', 'Ext.ux.RowExpander', 'Ext.ux.grid.SPrint']);
利用Application对象创建应用程序实例
通过Application对象我们可以创建应用程序的实例,作为应用程序的单一入口。在Application中我们可以设置全局命名空间,应用程序路径,是否开启自动创建视口,和加载相关controller。代码如下。/** 创建应用程序的实例 **/ Ext.application({ name: 'MyExt', //设定应用程序的命名空间(它将是controller,view.model和store的命名空间) appFolder: 'app', //设定应用程序的路径 autoCreateViewport: true,//开启自动创建Viewport,它将自动去view目录下查找Viewport文件并实例化 controllers: [ //加载应用程序所用到的所有controller 'UserController'] });
利用Viewport和view进行页面布局
一个页面只能有一个Viewport,它就像骨架一样承载着多个view(这里指的上,下,左,右的panel),它是应用程序界面的载体。下面是创建Viewport视口的代码。/*** *自定义一个Viewport类继承Ext.container.Viewport ***/ Ext.define('MyExt.view.Viewport', { extend: 'Ext.container.Viewport', alias: 'widget.viewport', //在实例化前加载相关类,一定要先加载,否则在构造函数initComponent中无法使用 requires: [ 'MyExt.view.main.Top', 'MyExt.view.main.Bottom', 'MyExt.view.main.Left', 'MyExt.view.main.Content' ], layout: 'border', //构造函数 initComponent: function () { var me = this; Ext.applyIf(me, { //将上,下,左,右四个面板作为独立的view进行实例化,然后作为item给Viewport items: [ Ext.create('MyExt.view.main.Top'), Ext.create('MyExt.view.main.Bottom'), Ext.create('MyExt.view.main.Left'), Ext.create('MyExt.view.main.Content') ] }); me.callParent(arguments); //确保父类Ext.container.Viewport的构造函数能被调用 } });
这个是Top面板的代码,其它三个面板都是一样,作为一个独立的view,需要的时候再实例化,这样就达到了view复用的目的。
/*** *自定义一个Panel类继承Ext.Panel ***/ Ext.define('MyExt.view.main.Top', { extend: 'Ext.Panel', alias: 'widget.top', initComponent: function () { var me = this; Ext.apply(this, { region: 'north', title: 'top', height: 100, layout:'border', html:'this is north panel' }); me.callParent(arguments); } });
Bottom面板
/*** *自定义一个Panel类继承Ext.Panel ***/ Ext.define('MyExt.view.main.Bottom', { extend: 'Ext.Panel', alias: 'widget.bottom', initComponent: function () { var me = this; Ext.apply(this, { region: 'south', title: 'south', height: 100, layout: 'border', html: 'this is south panel' }); me.callParent(arguments); } });
Left面板
/*** *自定义一个Panel类继承Ext.Panel ***/ Ext.define('MyExt.view.main.Left', { extend: 'Ext.Panel', alias: 'widget.left', initComponent: function () { var me = this; Ext.apply(this, { region: 'west', title: 'west', width: 200, layout: 'border', html: 'this is west panel' }); me.callParent(arguments); } });
Content面板
/*** *自定义一个Panel类继承Ext.Panel ***/ Ext.define('MyExt.view.main.Content', { extend: 'Ext.Panel', alias: 'widget.content', initComponent: function () { var me = this; Ext.apply(this, { region: 'center', title:'center', layout: 'fit', html: 'this is center panel' }); me.callParent(arguments); } });
运行效果如图。
![](http://images.cnitblog.com/blog/311549/201306/05222638-fe13828d3a2443b4bc53e31e3fc6eccb.jpg)
这样页面的布局就算完成了,这里我们已经对view有一个初步的认识,它其实就是利用窗体控件panel,grid或form等进行用户界面展示,我们最好将每一个view都定义成一个独立的类,这样需要使用的时候去实例化就好了,这样达到了view复用的目的。下一篇我将总结如何利用view,store和model创建组件和数据交互。
相关文章推荐
- Ext Js MVC系列二 利用Application和Viewport进行应用程序初始化和页面布局
- 利用row进行页面布局,很不错的布局方式
- 利用div进行页面的布局1(float&clear属性)
- 【Web API系列教材】1.3 — 实战:用ASP.NET Web API和Angular.js创建单页面应用程序(上)
- Ext Js MVC系列一 环境搭建和MVC框架整体认识
- 利用层的table-row、table-cell属性进行页面布局
- 利用Device.js判断设备进行网页布局
- 在EXT框架中,使用JS文件设置UEditor文本框,出现新增内容很多,页面变型,不出现滚动条,导致无法进行操作。
- 利用js实现页面跳转并在跳转到的页面进行判断操作
- 用viewport进行布局,将页面分成了三分,我想实现弹出的window窗口在整个viewport上
- Ext Js MVC系列一 环境搭建和MVC框架整体认识
- php用户注册页面利用js进行表单验证具体实例
- php用户注册页面利用js进行表单验证
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(2)
- 如何利用扩展方法来链式的对MVC 3中的页面进行验证
- 【干货】利用MVC5+EF6搭建博客系统(四)(上)前后台页面布局页面实现,介绍使用的UI框架以及JS组件
- php用户注册页面利用js进行表单验证
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(1)
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(2)
- Ext Js MVC系列一 环境搭建和MVC框架整体认识