CKEditor новый экземпляр всегда выгружается
Я использую CKEditor в своем приложении Angular и имею представление, которое перезагружает мой экземпляр CKEditor каждый раз, когда пользователи обращаются к новой модели.
Я использую следующий JS для инициализации редактора:
var initEditor = function() {
$('.js-editor-wrap').html("<textarea id='editor'></textarea>");
var editor = CKEDITOR.replace('editor', {});
editor.on('loaded', function() {
console.log('editor loaded');
});
editor.on('instanceReady', function() {
console.log('instance ready')
});
}
И следующее, чтобы уничтожить редактора:
var destroyEditor = function() {
if (CKEDITOR.instances['editor']) {
CKEDITOR.instances['editor'].destroy(true);
$('#editor').off().remove();
}
}
Первая инициализация редактора работает так же, как и ожидалось, но последующие инициализации создают экземпляр редактора со статусом "unloaded", который никогда не запускает события "loaded" или "instanceReady". Я ничего не вижу. ошибки в консоли.
Есть идеи, что может быть причиной этого?
Это, безусловно, похожий вопрос на следующий, но достаточно отличающийся, чтобы я думаю, что он заслуживает своего собственного вопроса: экземпляр CKEditor уже существует
1 ответ:
После гораздо большего копания и благодаря jsfiddle от Jey Dwork, я понял, где проблема здесь. Мой конфигурационный файл CKEditor добавляет пару плагинов, которые ссылаются на файлы lang, которые были неправильно названы. По какой-то причине, когда эти плагины были включены вместе, они вызвали не полную загрузку редактора во время Второй инициализации.
Удаление файлов lang и ссылки на них в определениях плагинов решили проблему. Очень жаль, что не было какой-то ошибки. это было спровоцировано вокруг этого. Но все хорошо, что хорошо кончается.