在tinymce的动态项目菜单

问题描述 投票:0回答:1

我的菜单必须根据具体情况改变:

editor.addMenuItem('table_entity', {
    context     : 'contextmenu',
    text        : 'Table Entity',
    icon        : false,
    onPostRender: function () {
        var menu = this;
        editor.on('NodeChange', function (e) {
            var table = editor.dom.getParent(e.element, 'table');
            if (table === null || table.classList.value.search(/prefix_/) == -1) {
                menu.disabled(true);
                menu.settings.menu = null;
            } else {
                var match = table.classList.value.match(/prefix_(.+)\s|$/);
                if (match[1] !== undefined) {
                    menu.settings.menu = firstItem(match[1]).concat(self.getMenu(match[1], self[match[1] + 'Property']));
                    menu.disabled(false);
                }
            }
        })
    }
});

,但它不起作用。对象中的数据已更改(menu.settings.menu),当menu.disabled(true)时 - 一切正常,但在其他情况下,我看到第一次生成的菜单项(即对象中的数据正在更改,项目在下拉菜单中不改变)。

tinymce
1个回答
0
投票

初始化编辑器后,TinyMCE不支持动态添加项目到菜单。如果你必须这样做,你也可以

  • 首先添加所有内容,然后根据需要启用/禁用
  • 用户remove()init()使用不同的菜单选项重新初始化编辑器
© www.soinside.com 2019 - 2024. All rights reserved.