事件继承,避免重复注册注意事项

BaseForm:


 1 /**
2 * 基本表单类
3 */
4 Ext.define("Lms.view.BaseForm", {
5 extend : "Ext.form.Panel",
6 alias : "widget.baseform",
7 bodyPadding : ‘10 20 10 10‘,
8 border : false,
9 layout : "form",// 默认
10 waitMsg : "请稍等...",
11 waitTitle : ‘提示‘,
12 autoScroll : true,
13 defaults : {
14 xtype : ‘textfield‘,
15 labelAlign : ‘left‘,
16 width : 150,
17 labelWidth : "70",
18 labelSeparator : "",
19 allowBlank : false,
20 blankText : "该值不能为空",
21 msgTarget : "qtip"
22 },
23 tbar : [{
24 xtype : "button",
25 text : "返回",
26 ref : "btnBack",
27 iconCls : "icon_form_back"
28 }],
29 buttons : [{
30 text : "提交",
31 ref : "btnSubmit",
32 iconCls : "icon_form_submit"
33 }, {
34 text : "重置",
35 ref : "btnReset",
36 iconCls : "icon_form_reset"
37 }],
38 initComponent : function() {
39 this.callParent(arguments);
40 }
41 });

BaseFormController:

1 Ext.define("Lms.controller.BaseFormController", {
2 extend : "Ext.app.Controller",
3 init : function() {
4 this.control({

ChatRoomForm:继承于BaseForm时BaseForm里面带的事件就已经带有了,不再需要controller在继承


 1 /*
2 * 聊天面板
3 */
4 Ext.define(‘Lms.person.view.ChatRoomForm‘, {
5 extend : ‘Lms.view.BaseForm‘,
6 alias : ‘widget.chatroom‘,
7 tbar : null,
8 items : [{
9 fieldLabel : "资源名",
10 name : "name"
11 }],
12 buttons : [{
13 xtype : "textfield",
14 width : 500
15 }, {
16 text : "发送",
17 ref : "btnSend",
18 iconCls : "icon_form_submit"
19 }],
20 initComponent : function() {
21 this.callParent(arguments);
22 }
23 });

ChatFormController:


 1 /**
2 * 聊天室控制类
3 */
4 Ext.define("Lms.person.controller.ChatController", {
5 extend : "Ext.app.Controller", // 这里不需要继承BaseController,因为界面继承时就已经带有事件了
6 init : function() {
7 var flag = comm.get("ChatController");
8 if (!flag) { // 避免事件重复注册
9 this.control({
10 "chatroom button[ref=btnSend]" : {
11 click : function(btn) {
12 Ext.example.msg("系统消息", "发送成功");
13 }
14 }
15 });
16 }
17 comm.add("ChatController", true);
18 this.callParent(arguments);
19 },

时间: 2024-08-27 03:47:46

事件继承,避免重复注册注意事项的相关文章

jquery click嵌套 事件重复注册 多次执行的问题解决

jquery click嵌套 事件重复注册 多次执行的问题解决 转载自新浪博客:http://blog.sina.com.cn/s/blog_4f925fc30100ln1o.html jquery click事件中嵌套click会重复注册内部的click事件,导致重复执行. 比如 $(...).click(function(){   $(...).click(function(){     ...//多次执行    }); });解决方法一: 每次执行完了,解除绑定,如$(...).click

防止多次引入js文件导致的重复注册点击事件

前端代码中的js文件如果是动态引入的或者是某个事件操作进行注册的,那么重复的引入js文件或者多次触发注册事件会导致事件多次进行注册,造成不必要的麻烦,所以需要在每次注册之前将先前的事件进行取消,下面以按钮的注册点击事件为例进行说明: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title>

ecshop后台增加栏目查询会员是否重复注册

ecshop的后台要查询哪些会员是否有重复注册时,可以利用特定的栏目来判断~ 譬如会员电话... 修改前请务必先备份下列档案!!! admin/users.php admin/templates/users_list.htm languages/zh_cn/admin/users.php 开启 admin/users.php找到 $ex_where .= " AND user_name LIKE '%" . mysql_like_quote($filter['keywords']) .

android点滴之标准SD卡状态变化事件广播接收者的注册

目前最完整的,需要注册的动作匹配如下: IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_MOUNTED); intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED); intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED); intentFilter.addAction(Intent.ACTION_ME

Consul坑坑一人行之从入门到放弃,记Consul的重复注册、节点失效后无健康检查等坑。。。求解

环境: dotnet core 2.1 CentOS 7 由于听到Eureka2.X最近好像要凉的消息 所以昨天在尝试使用Consul替代Eureka来实现服务发现等功能 Consul使用HttpAPI注册服务 但是!!!! 发现几个非常恶心的地方,在这里分享出来,希望可以得到园子里各位大牛的指导. 坑1:同一个ServiceID 可以在多个节点上重复注册! 情况是这样,我对Consul进行了好多折腾, 首先,为了避免本地Consul挂了导致服务无法注册, 所以我对Consul的HTTP端口(8

C#基础-事件 继承类无法直接引发基类的事件

An event can be raised only from the declaration space in which it is declared. Therefore, a class cannot raise events from any other class, even one from which it is derived. 事件只能在它被声明的声明空间(类)中使用.所以不能从任何其他类引发,即使该类是事件所在类的继承类. 那我们如何才可以引发基类中的事件,给个实例大家一

自定义adapter的基础上Listview优化方案以及几个小错误(checkbox吃掉点击事件以及对象重复问题)

每次adapter运行都有一个getcount,有多少条就调用多少次getview,就会解析多少次xml文件(创建view,条数多了很消耗时间),13年谷歌提出了一个机制,每次只缓存一屏幕多几个,把划出屏幕外的listview回收(用的convertView),只要修改里面的值就可以重新用不用再创建一个view 修改的是自定义adapter中的getview方法 @Overridepublic View getView(int position, View convertView, ViewGr

触发事件,检查是否注册过事件的方法

下面的代码,会发现事件没有被注册 class Program { static void Main(string[] args) { EventCheck check = new EventCheck(); check.OnDataArrived(new DataArrivedEventArgs() { data="Hello World!"}); Console.ReadKey(); } static void check_DataArrived(object sender, Dat

jQuery动态行绑定事件,发生重复绑定解决方案

背景: 系统需要动态增加分类,各分类下有各自的3项资金(有资金小计,问题就出在这里). 问题: 新增一条分类,需要给3项资金新绑定小计功能.这个时候会发现,初始第一行的计算,会调用两次,增加到三行的时候,第一行会重复计算三次,第二行会重复计算两次...以此类推 为什么会执行多次? 猜词: 新增一行,绑定计算函数,历史分类会累计事件.也就是说,每新增一行,历史的每一个分类都会增加一次事件绑定. 方案: 绑定事件前,删除事件.jQuery提供了on().live()绑定方法,对应的解绑事件off()