2013-04-19 5 views
1

Я работаю в extjs4 MVC. Я застрял в точке, где Мне нужно поймать событие гиперссылки в extjs4. Я хочу поймать это событие в методе управления контроллерами. Я много пробовал, но не получал решила, пожалуйста, кто-то дает некоторое предложение о том, как решить эту проблему.Как поймать событие гиперссылки в контроллере в 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"); 
    } 
}); 

Я пробовал много на it.but не получить решил эту проблему problem.How я могу решить эту проблему, пожалуйста, это дать некоторые предложения ...

ответ

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(); 
      }); 
     } 
    } 
}); 

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

С благодарностью