1. #1
    Sencha User
    Join Date
    Oct 2011
    Location
    Pakistan
    Posts
    229
    Answers
    10
    Vote Rating
    1
    umr.ashrf is on a distinguished road

      0  

    Default Unanswered: Controller Refs Selector Problem 2

    Unanswered: 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 - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    37,217
    Answers
    3519
    Vote Rating
    859
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      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 @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!

    When posting code, please use BBCode's CODE tags.

  3. #3
    Sencha User
    Join Date
    Apr 2010
    Posts
    75
    Answers
    3
    Vote Rating
    5
    HriBB is on a distinguished road

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

Thread Participants: 2

Tags for this Thread