Я пытаюсь разработать программную клавиатуру с использованием CKEditor. Это требует, чтобы я преобразовал текст при вводе (завершено) и иногда нужно удалить ключ (где я борюсь). Мой текущий код выглядит следующим образом:
ClassicEditor
.create( document.querySelector( '#editor' ) )
.then(editor => {
console.log( editor );
editor.editing.view.document.on( 'keydown', ( event, data ) => {
var keyPressed = data.domEvent.key;
//getMappedCharacter returns a map
//String newKey -> value of the keyPressed
//Boolean deleteKey -> Whether the previous character should be deleted
var mappedCode = getMappedCharacter(keyPressed);
console.log('mc', mappedCode)
if (mappedCode.newKey != keyPressed) {
data.preventDefault();
event.stop();
if(mappedCode.deleteKey){
// WHERE I'M STRUGGLING
// Trying to delete the latest character inserted (where my cursor is located).
}
editor.model.change( writer => {
writer.insertText( mappedCode.newKey, editor.model.document.selection.getFirstPosition() );
} );
}
})
})
.catch( error => {
console.error( error );
} );
В настоящее время я пытаюсь использовать команду Delete пакета ckeditor5-typing с CKEditor5 в проекте Angular / Typescript. Документация говорит, что я должен включить в набор плагинов пакет Typing, например:
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ Essentials, Paragraph, Bold, Italic ],
toolbar: [ 'bold', 'italic' ]
} )
Однако, когда я это делаю, я получаю следующую ошибку в консоли:
![console error](https://i.stack.imgur.com/eJRT0.png)
Когда я ввожу document.querySelector('#editor')
в консоли, я получаю следующее:
<textarea _ngcontent-c1 dir="rtl" id="editor" name="content"></textarea>
Так что я не уверен, почему он показывает мне нулевую ошибку в консоли.
Любая помощь будет оценена