3
我在我的Angular應用程序中使用CKEditor,並且每次用戶訪問新模型時都會重新加載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
我猜你有一個不同的問題,因爲只有你提供的代碼每次都像你想要的那樣工作(見這個小提琴:http://jsfiddle.net/6bs3cjo8/)。所以很難說你的具體問題可能是什麼。你可以嘗試通過將你的編輯器實例定義爲全局變量來解決這個問題(如果這可能在你的情況下)(參見這個小提琴的例子:http://jsfiddle.net/v0rn1Low/1/) - 或者更好一點返回它作爲'initEditor()'的句柄並傳遞給'destroyEditor()'。 – 2015-03-06 14:53:39
是的,我擔心你需要放置更多的代碼 - 調用'initEditor'和'destroyEditor'的函數。 – 2015-03-08 10:32:03