javascript - Extjs 菜单插入具有覆盖的新项目

标签 javascript extjs menu items

我有一个定义如下的菜单:

Ext.define('MyApp.FileBrowserContextMenu', {
    extend: 'Ext.menu.Menu',

    initComponent: function() {
        var me = this;

        Ext.applyIf(me, {
            items: [
                {
                    xtype: 'menuitem',
                    text: 'Edit',
                    listeners: {
                        click: {
                            fn: me.onMenuitemClick,
                            scope: me
                        }
                    }
                },
            ]
        });

        me.callParent(arguments);
    },

    onMenuitemClick: function(item, e, options) {
        var server = this.record;
        var win = Ext.create('widget.ServerWindow', {
            record: server
        });
        win.show();
    }

});

我想在定义后添加新项目,所以我尝试这样做:

首先我定义了新的 MenuItem:

Ext.define('MyApp.GitMenuItem', {
    extend: 'Ext.menu.Item',
    alias: 'widget.gitmenuitem',

    text: 'Git',

    initComponent: function() {
        var me = this;

        Ext.applyIf(me, {
            menu: {
                xtype: 'menu',
                items: [
                    {
                        xtype: 'menuitem',
                        text: 'Commit',
                        listeners: {
                            click: {
                                fn: me.onMenuitemClick,
                                scope: me
                            }
                        }
                    },
                ]
            }
        });

        me.callParent(arguments);
    },

    onMenuitemClick: function(item, e, options) {

    },

});

然后我尝试附加新的菜单项:

Ext.override(MyApp.FileBrowserContextMenu, {
    initComponent: function () {
        var me = this;
        this.callParent();
        me.items.items.push(Ext.create('widget.gitmenuitem'));
    }
});

它似乎有效,因为出现了新的 MenuItem,但是当我过去时,应该会出现新的 Item,但我收到此错误:

未捕获类型错误:无法设置未定义的属性“activeChild”

有什么想法吗?

最佳答案

通常的方式是add方法:menu.add(menuItem)

关于javascript - Extjs 菜单插入具有覆盖的新项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10637813/

相关文章:

iphone - 有人使用 Sencha Touch 进​​行移动开发吗?

javascript - 将预测张量转换为图像

javascript - 如何在 dom 准备好之前执行 JavaScript?

javascript - 浏览器上的 Web 控制所需的打印屏幕功能

javascript - ExtJS:修复两个工具栏元素上的图像

css - 使用 :focus has issue with non-menu links failing 的纯 CSS 移动切换菜单

css - 制作带有悬停动画的 CSS 菜单

menu - Android 3.0蜂窝: How to enable/disable Menu Items in Action Bar?

javascript - 使用给定的数据属性动态创建 JavaScript 值?

javascript - Webpack:将变量注入(inject)静态 service-worker.js