Как отловить событие гиперссылки в контроллере в extjs4?

Я работаю в extjs4 MVC. Я застреваю в точке, где мне нужно отловить щелчок по событию по гиперссылке в extjs4. Я хочу поймать это событие в методе "control" контроллеров. Я много пробовал, но не решил, пожалуйста, кто-нибудь дать несколько советов, как решить эту проблему.

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 ответ

Решение
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();
           });
      }
   }
});

Это будет работать!!!!

Спасибо

Другие вопросы по тегам