【问题标题】:How to catch event of hyperlink in controller in extjs4?如何在 extjs4 的控制器中捕获超链接事件?
【发布时间】:2013-04-12 11:09:43
【问题描述】:

我在 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");
     }
});

我尝试了很多。但没有解决这个问题。我该如何解决这个问题请给一些建议......

【问题讨论】:

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


    【解决方案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();
               });
          }
       }
    });
    

    这行得通!!!!

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多