我想动态地初始化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}}
是否可以做我想做的事情,如果可以,我应该怎么做?
答案 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' );
});