如何在extjs4中捕获控制器中的超链接事件?

时间:2013-04-19 05:57:05

标签: hyperlink extjs4 extjs4.1 extjs-mvc extjs2

我正在使用extjs4 MVC。我遇到了一个问题,那就是我必须在extjs4中捕获事件点击超链接。我想在控制器'控制'方法中捕获该事件。我尝试了很多,但没有得到解决请一些人提出如何解决这个问题的建议。

1)这是我的一些视图代码: -

Ext.define('AM.view.user.linkView', {
    extend:'Ext.form.Panel',
    alias:'widget.Link',
    title:'hyper link',
    items:[
    {
        xtype: 'box',
        autoEl: {tag: 'a', href: '#', html: 'Click on this button',id:'link'}
    }]
});// End of login class

2)这是我的控制器代码:---

Ext.define('AM.controller.Users', {
    extend: 'Ext.app.Controller',

     views: ['user.linkView'],

     init: function() {
         this.control({
             'Link box[tag: a]':
                 click:this.linkClicked
         });
     },
     linkClicked:function()
     {
         console.log("clicked on link");
     }
});

我试了很多。但是没有解决这个问题。我怎么能解决这个问题请给出一些建议......

1 个答案:

答案 0 :(得分:2)

Ext.define('AM.view.user.linkView', {
    extend:'Ext.form.Panel',
    alias:'widget.Link',
    name:'linkPanel',
    title:'hyper link',
    items:[
    {
        xtype: 'box',
        autoEl: {tag: 'a', href: '#', html: 'Click on this button',id:'link'}
    }]
});// End of login class

在控制器中使用以下代码

var controller = this;
controller.control({
   'linkPanel': {
      afterrender: function() {
           Ext.get('link').on('click', function() {
                controller.linkClicked();
           });
      }
   }
});

这将有效!!!!

由于