Как отловить событие гиперссылки в контроллере в 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();
});
}
}
});
Это будет работать!!!!
Спасибо