Ext 4.0 MVC详解

本人在使用中的感受:

如果我们这样分层了,有利于组件重用,软件开发和维护,但学习成本很高,要新人接受需要一段时间,在开发中要按照一定规范.

建议不要随便使用这样分层!

 

每一层的介绍:

1,model和store其实就是管数据的,

2,view层,纯界面,极少逻辑代码,逻辑代码都写到controller中,这样好管理.

3,controller,建议逻辑代码都写到这里,这样好管理.

 

关于文件夹名称:

注意文件夹起名controller/model/store/view文件夹名称一定的,

这样每个相应的类名也可以根据这个来取,如:"keel.view.goods.GoodsListView"

keel是整个应用程序的命名空间,view就是view文件夹,goods.GoodsListView就是view文件夹下的goods文件夹的

GoodsListView.js文件;

这样程序就可以用动态加载功能了;

 

controller介绍:

其实我们很大一部分工作就在controller了,例子代码如下:

 

Js代码  

1.     /* 
2.     商品控制层, 
3.     所有逻辑代码都在这里写 
4.     */  
5.     Ext.define('keel.controller.GoodsCtrl', {  
6.         extend: 'Ext.app.Controller',  
7.         stores: ['GoodsStore'],//声明该控制层要用到的store  
8.         models: ['GoodsModel'],//声明该控制层要用到的model  
9.         views: ['goods.GoodsListView','goods.GoodsWinView'],//声明该控制层要用到的view  
10.     refs: [//相当于一个映射,这样就可以在控制层方便的通过geter取得相应的对象了  
11.         {  
12.             ref: 'goodslistview',  
13.             selector: 'goodslistview'  
14.         },  
15.         {  
16.             ref: 'goodswinview',  
17.             selector: 'goodswinview'  
18.         }  
19.     ],  
20.     init: function() {  
21.         this.control({//这里的this相当于这个控制层  
22.             'viewport > goodslistview': {  
23.                 afterrender: function(gp){//侦听goodslistview渲染  
24.                     gp.down('button[action=testBtn1]').on('click',function(){  
25.                         //侦听goodslistview工具条上action=testBtn1的按钮单击事件  
26.                         this.showWin();  
27.                     },this);  
28.                       
29.                     gp.down('button[action=testBtn2]').on('click',function(){  
30.                         //侦听goodslistview工具条上action=testBtn2的按钮单击事件  
31.                         alert(this.getGoodslistview().title)  
32.                     },this);  
33.                 }  
34.             },  
35.             'goodswinview button[action=ok]': {  
36.                 //侦听goodswinview中action=ok的按钮单击事件  
37.                 click: function(){  
38.                     this.getGoodswinview().setTitle(Ext.util.Format.date(new Date(),'Y-m-d H:i:s'));  
39.                 }  
40.             }  
41.         });  
42.     },  
43.     showWin : function(){  
44.         Ext.create('keel.view.goods.GoodsWinView').show();        
45.     }  
46. });  
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值