【问题标题】:EXTJS, Unable to bind event handler to controllerEXTJS,无法将事件处理程序绑定到控制器
【发布时间】: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 如何处理此类事件的任何帮助或解释都将非常有帮助,非常感谢!谢谢。

【问题讨论】:

    标签: javascript node.js 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
    猜你喜欢
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 2010-11-20
    • 2011-10-11
    • 1970-01-01
    相关资源
    最近更新 更多