CKEditor5: запретить копирование атрибутов в новый абзац при вводе

Я работаю над проектом, который позволяет пользователям вводить контент в редактируемый. Я добавил contentid Атрибут для абзаца, чтобы я мог отслеживать, что было добавлено и где он находится.

<p contentid="1">some default content</p> 

Когда нажата клавиша Enter из этого абзаца, следующий введенный абзац также имеет contentid="1" приписывать. Я хочу, чтобы в новом абзаце не было contentid приписывать.

Я пытаюсь определить, как / где лучше всего добиться этого. Я хакнул с прослушиванием клавиши ввода и schema.addChildCheck но не добился большого прогресса.

1 ответ

Решение

Это, кажется, делает трюк. Может быть, немного хакерский.. но понял, что выбор всегда во вновь созданном элементе. Поэтому мне не нужно было искать ссылку на него в обратном вызове, я мог просто взять новый абзац из текущего выделения.

editor.commands.get( 'enter' ).on( 'afterExecute', () => {
  const block = first( editor.model.document.selection.getSelectedBlocks() );
  editor.model.change( writer => {
    writer.removeAttribute( 'contentid', block );
  });
});
Другие вопросы по тегам