Extjs4 MVC 添加view层

如果这不是您感兴趣或者需要学习的东西,何必点开呢?人生苦短。
实例中我们通过view层望主界面中添加一个grid,

1、app.js改成如下:

app.js
 1 Ext.Loader.setConfig({enabled:true});//开启动态加载
 2 Ext.application({
 3     name: 'MVC',
 4 
 5     appFolder: 'mvc',
 6     
 7     controllers: ['MVCS'],
 8 
 9     launch: function() {
10         Ext.create('Ext.container.Viewport', {
11             layout: 'fit',
12             items: {
13                 xtype: 'userlist'
14             }
15         });
16     }
17 });

2.MVC/view/mvc/MVCS.js改成如下所示:

view/mvc/MVCS.js
 1 Ext.define('MVC.view.mvc.MVCS' ,{
 2     extend: 'Ext.grid.Panel',
 3     alias : 'widget.userlist',
 4 
 5     title : '人员列表',
 6 
 7     initComponent: function() {
 8         this.store = {
 9             fields: ['name', 'email'],
10             data  : [
11                 {name: '张三',    email: 'zs@cnblogs.com'},
12                 {name: '李四', email: 'ls@cnblogs.com'}
13             ]
14         };
15 
16         this.columns = [
17             {header: 'Name',  dataIndex: 'name',  flex: 1},
18             {header: 'Email', dataIndex: 'email', flex: 1}
19         ];
20 
21         this.callParent(arguments);
22     }
23 });

代码如上,alias为我们定义的grid声明了一个别名userlist,我们可以直接通过xtype:'userlist'生成我们定义的grid,app.js中我们的xtype既是。

3、我们在controller中声明我们使用的views,如下:

controller
 1 Ext.define('MVC.controller.MVCS', {
 2     extend: 'Ext.app.Controller',
 3     
 4     views : ['mvc.MVCS'],
 5 
 6     init: function() {
 7         this.control({
 8             'userlist': {
 9                 itemclick: this.editUser
10             }
11         });
12     },
13 
14     editUser: function(grid, record) {
15         console.log('Double clicked on ' + record.get('name'));
16     }
17 });

 

如上,我们在views中声明了我们的view,可添加多个,声明方式为view文件夹下的路径:mvc.MVCS,这样我们的controller就能够找到我们的views,并在controller中直接使用我们定义的别名找到我们的元素。我们在controller中通过this.control.为我们的grid定义了单击事件,运行效果如下:

最终,我们实现了view层的添加并对view层进行了事件的添加,下一篇回忆一下modal层的添加。

posted @ 2012-11-03 21:12  Alexander.liu  阅读(3507)  评论(0编辑  收藏  举报