Ckeditor 5多个实例

时间:2019-05-27 10:39:16

标签: javascript ckeditor ckeditor5

我想动态地初始化ckeditor,以后再为每个使用const editors = {}; function createEditor( elementId ) { return ClassicEditor .create( document.getElementById( elementId ) ) .then( editor => { editors[ elementId ] = editor; } ) .catch( err => console.error( err.stack ) ); } $(document).ready( function() { createEditor( 'editor1' ); createEditor( 'director1' ); console.log(editors.editor1.setData('test')); //error message }); 函数。我尝试了此操作:CKEditor 5 – get editor instances,但收到错误消息:

  

无法读取未定义的属性'setData'

{{1}}

是否可以做我想做的事情,如果可以,我应该怎么做?

1 个答案:

答案 0 :(得分:0)

请参阅:https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editor-Editor.html#event-ready

您只能在满载时设置编辑器数据。尽管有一个ready事件,但您可以在链接中阅读,但是create方法返回的promise更好。您的代码应该看起来像这样:

var editors = [];   
function createEditor( elementId, data ) {
    return ClassicEditor
        .create( document.querySelector( '#' + elementId ) )
        .then( editor => {
        editors[ elementId ] = editor;
        editor.setData( data ); // You should set editor data here
    } )
        .catch( err => console.error( err ) );
}

$(document).ready( function() {
    createEditor( 'editor', 'test' );
    createEditor( 'director1', 'test' );
});