Extjs 在控制器中显示上下文菜单

Extjs 在控制器中显示上下文菜单,extjs,Extjs,我有两个视图——一个用于树面板,另一个用于上下文菜单(定义为fileeditor.view.fileeditorcontextmenu)。我有一个控制器,它在其中侦听itemcontextmenu事件。我不知道应该如何创建(在何处、在什么阶段?)以及如何显示我的文件编辑器或ContextMenu。侦听器的部分如下所示: itemcontextmenu:function(view, rec, item, index, event){ event.stopEvent(); ... W

我有两个
视图
——一个用于树面板,另一个用于上下文菜单(定义为
fileeditor.view.fileeditorcontextmenu
)。我有一个
控制器
,它在其中侦听
itemcontextmenu
事件。我不知道应该如何创建(在何处、在什么阶段?)以及如何显示我的
文件编辑器或ContextMenu
。侦听器的部分如下所示:

itemcontextmenu:function(view, rec, item, index, event){
    event.stopEvent();
    ... What should I do next? How should I instantiate and show a context menu
}
编辑


我研究了这段代码,它的功能与我想要的类似,但问题是-我找不到
getContextMenu()
-这是问题中最重要的一个实现。

这是打开上下文菜单的示例代码(这会给你一些想法):


我想知道这种方法是否会导致内存泄漏。因为每次用户右键单击时,都会创建上下文菜单的新实例。是否可以创建一次,然后重新使用?离开菜单时,您将关闭菜单。检查更新的答案。
itemcontextmenu: function(view, record, item, index, e, eOpts) {
        var position = e.getXY(),
            menu = Ext.create('FilesEditor.view.FilesEditorContextMenu', {
            id: 'myMenu',
            items: [{
                text: 'Some Menu Item',
                handler: function() {
                    // do your stuff
                }
            }],
            listeners: {
                mouseleave: function() {
                    // close menu
                    menu.close();// check documentation https://docs.sencha.com/extjs/5.1/5.1.0-apidocs/#!/api/Ext.menu.Menu-method-close
                }
            }
        });
        e.stopEvent(); // prevent the browser default context menu
        menu.refView = view; // passing the view reference to the menu so that we can get a handle of the grid inside the menu item handler
        menu.showAt(position);
    }