Динамическое меню пунктов в tinymce - PullRequest
0 голосов
/ 08 мая 2018

мое меню должно меняться в зависимости от контекста:

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) - все в порядке, но в других случаях я вижу пункты меню, которые были сгенерированы впервые (т.е. данные в объекте меняются, элементы в выпадающем меню не меняется).

1 Ответ

0 голосов
/ 08 мая 2018

TinyMCE не поддерживает динамическое добавление элементов в меню после инициализации редактора. Если вам нужно сделать это, вы можете либо

  • Сначала добавьте их все и просто включите / отключите при необходимости
  • Пользователь remove() и init() для повторной инициализации редактора с различными параметрами меню
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...