EXTJS,无法将事件处理程序绑定到控制器

Posted

技术标签:

【中文标题】EXTJS,无法将事件处理程序绑定到控制器【英文标题】:EXTJS, Unable to bind event handler to controller 【发布时间】:2012-05-21 12:56:35 【问题描述】:

我将 EXTJS 与 Node.JS 一起使用,并且在 EXTJS MVC 框架的上下文中处理事件时遇到了困难。

在视图的类定义中定义事件侦听器时,我已经能够轻松注册点击事件,但似乎无法将此代码移动到控制器中。

这是我当前的代码:

//Icon.JS (VIEW)

Ext.define('GeekFlicks.view.Icon', 
    extend: 'Ext.button.Button',
    alias: 'widget.icon',
    height: 48,
    width: 48,
    text: 'icon',
    draggable: true
);

//Icon.JS(控制器)

Ext.define('GeekFlicks.controller.Icon', 
extend: 'Ext.app.Controller',

models: ['Icon'],
stores: ['Icons'],
views: ['Icon'],

init: function () 
    this.control(          
        'listener': 
            click: function(c) 
                alert('working');
            
        
    );
,
);

关于 EXTJS 如何处理此类事件的任何帮助或解释都将非常有帮助,非常感谢!谢谢。

【问题讨论】:

【参考方案1】:

this.control改成这样:

'icon': 
    click: function(c) 
       alert('working');
    

您基本上需要让控制器知道要控制哪个元素。我还建议阅读有关在控制器中使用 refs: [] 以更轻松地访问视觉元素和视图的信息。

【讨论】:

有效!谢谢。奇怪的是它不适用于“dblclick”,但它适用于“click”和“mouseover”。 没问题。如果适合您,请将答案标记为已回答。 它工作正常,但仅用于单击。知道为什么 dblclick 不会触发吗? 可能是因为按钮没有dblclick事件? docs.sencha.com/ext-js/4-0/#!/api/Ext.button.Button

以上是关于EXTJS,无法将事件处理程序绑定到控制器的主要内容,如果未能解决你的问题,请参考以下文章

将许多控制事件绑定到同一个处理程序,获取发送者

无法在初始化时绑定事件处理程序

如何将事件处理程序绑定到 jQuery 中的实例?

在 ExtJs 中为多个控制器绑定事件

将按键事件添加到 ExtJS DatePicker

如何将 WPF 中的命令绑定到控件的双击事件处理程序?