我在我的Angular应用程序中使用CKEditor,并且每当用户访问新模型时,都会重新加载我的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();
}
}
首次编辑器初始化工作正常,但随后的初始化会创建一个状态为“未加载”的编辑器实例,从而无法触发“已加载”或“实例准备就绪”事件。 我在控制台中没有看到任何错误。
有什么想法是什么导致了这个问题?
这绝对是类似于以下问题的问题,但不同之处足以成立自己的问题:CKEditor instance already exists。
initEditor()
返回它作为句柄,并将其传递给destroyEditor()
。 - Jey DWorkinitEditor
和destroyEditor
。 - Marek Lewandowski