点击tpl链接时,ExtJS 4.2自定义组件触发事件

ExtJS 4.2 Custom Component fire event when click in a tpl link

本文关键字:组件 自定义 事件 链接 tpl ExtJS 点击      更新时间:2024-05-20

我有一个自定义组件,它有一个到html tpl的链接,当我点击这个链接时,我需要该组件激发一个事件,让我在控制器中侦听。

代码:

Ext

Ext.define("Ext.ux.newpanel.NewPanel", {
  extend: 'Ext.Component',
    ...
tpl: [
    '<div class="title center"><p>{title}</p></div>',
    '<div class="content center">',
    '<div class="number center"><h1>{qtd}</h1></div>',
      '<div class="ind left">',
        '{ind}',
      '</div>',
    '</div>',
    '<div class="more">',
    '<a href="#" class="clickme">See all...</a>',
    '</div>'
  ],
...

我曾尝试创建带有委托的监听器,但我无法将组件范围带入监听器。代码:

..
listeners: {
    // Add the listener to the component's main el
    el: {
      delegate: '.clickme',

      click: function(ev, li) {
        // need to fire event in component here
      }
    }
  },
...

需要在"clickme"类中启动该事件。

谢谢!

解决方案:

cmp.el.on('click', function(event, target) {
 cmp.fireEvent('openRel', cmp);
}, null, {delegate: 'a'});

这是对这个答案的一点修改:如何将点击事件附加到ExtJS模板元素?

需要获取组件的DOM,然后将单击事件委托给标记。