我想动态初始化CKEDITors,然后对每个CKEDITors使用setData()
函数。我尝试了以下方法:CKEditor 5 – get editor instances但我得到错误:
无法读取未定义的属性“setData”
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
});
我能做我想做的事吗?如果可以,我该怎么做?
2条答案
按热度按时间dwbf0jvd1#
请参见:https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editor-Editor.html#event-ready。
只有在编辑器数据完全加载时才能设置它。虽然有一个
ready
事件,正如你在链接中看到的那样,但更好的地方是create
方法返回的promise。你的代码应该如下所示:jtw3ybtb2#
您可以将class设置为每个文本区域,例如ckeditor
接下来,在脚本部分中,按类CKEDitor选择所有元素,并为每个人使用init编辑器