Я пытаюсь использовать асинхронный флаг, предоставленный определением команды CKE, как показано в примере здесь.
У меня есть команда, которая открывает диалоговое окно пользовательского интерфейса jQuery, где некоторые данные вводятся пользователем. Эта часть работает нормально. Когда диалоговое окно закрыто (т. е. пользователь нажимает OK или Отмена), я пытаюсь сделать так, как показывает пример CKE, и вручную вызываю editor.fire("afterCommandExec")
, что приводит к следующей ошибке:
Uncaught TypeError: не удается прочитать свойство «команда» неопределенного
Это взято отсюда: http://docs.cksource.com/ckeditor_api/symbols/src/plugins_undo_plugin.js.html (строка 69)
if ( undoManager.enabled && event.data.command.canUndo !== false )
undoManager.save();
Я понимаю, почему происходит ошибка: вместе с вызовом fire()
не отправляются данные о событии. Однако в их примере также не отправляются данные о событии. Я могу вручную запустить событие с помощью команды в качестве данных, и, похоже, это работает:
editor.fire("afterCommandExec", {
command: editor.getCommand('link')
});
Однако это не похоже на правильный способ сделать это. Что я делаю неправильно?