Results 1 to 3 of 3

Thread: Controller Refs Selector Problem 2

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Sencha User
    Join Date
    Oct 2011
    Location
    Pakistan
    Posts
    229
    Answers
    10
    Vote Rating
    2
      0  

    Default Controller Refs Selector Problem 2

    I have a view and a controller. The view has menu under button of which items when clicked will be handled by controller. The event is never caught by controller if I put class selector but it works if I remove class selector.

    Have a look at my code.

    Code:
    Ext.create('Ext.Button', {
        text: 'Add Tab',
        cls: 'button',
        menu: Ext.create('Ext.menu.Menu', {
            cls: 'addMenu',
            items: [{
                text: 'One'
            }, {
                text: 'Two'
            }]
        })
    });
    Code:
    Ext.define('MyApp.controller.TabController', {
        extend : 'Ext.app.Controller',
        
        init : function() {
            this.control({
                'menu[cls=addMenu]' : {
                    'click' : this.addTab
                }
            });
        },
        
        addTab : function(a, b, c, d) {
            console.log(a, b, c, d);
        }
    });
    What am I doing wrong here?

  2. #2
    Sencha - Sr Software Engineer mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    39,551
    Answers
    3931
    Vote Rating
    1271
      0  

    Default

    Just from that it should work no issue. Have you tried to resolve it in the console using Ext.ComponentQuery.query?
    Mitchell Simoens @LikelyMitch
    Sencha Inc, Senior Software Engineer
    ________________
    Learn BBCode and use it! Checkout the CODE tag!

    Check out my GitHub, lots of nice things for Ext JS and Sencha Touch
    https://github.com/mitchellsimoens

  3. #3
    Sencha User
    Join Date
    Apr 2010
    Posts
    85
    Answers
    3
    Vote Rating
    14
      0  

    Default

    I have the same problem. I think it's a bug. It seems that cls property is null after menu is created/shown. So if you overwrite cls property after menu is shown, control ref works ... at least for me

    View
    Code:
    onContextMenu: function(grid, td, cellIndex, record, tr, rowIndex, e) {
        if (!this.contextMenu) {
            this.contextMenu = Ext.create('Ext.menu.Menu', {
                cls: 'view-name-cmenu',
                items: [{
                    text: 'remove',
                    cls: 'remove'
                }]
            });
        }
        this.contextMenu.showAt(e.getXY());
        this.contextMenu.cls = 'view-name-cmenu';
        e.stopEvent();
        return false;
    }
    Controller
    Code:
    this.control({
        'menu[cls~="view-name-cmenu"] menuitem[cls="remove"]': {
            click: this.onMenuItemClick
        }
    });

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •