#html #angular #typescript
Вопрос:
Просмотрев несколько руководств о том, как получить выделенный текст в проекте Angular, всегда используется следующий фрагмент кода, но когда я включаю его в свой компонент, я получаю ошибки:
getSelection() {
let text = "";
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection amp;amp; document.selection.type != "Control") {
text = document.selection.createRange().text;
}
return text;
}
Первая ошибка красного подчеркивания-это Object is possibly 'null'
.
Остальные трое Property 'selection' does not exist on type 'Document'
-да .
Что я здесь упускаю?
Ответ №1:
Попробуйте ссылаться в своем html-коде с помощью @ViewChild
@ViewChild('contentEditable') public el: ElementRef;
создать диапазон (https://developer.mozilla.org/en-US/docs/Web/API/Range)
this.el.nativeElement.focus();
const sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(this.rangeClone);
И получите выбор
let range = document.createRange();
range = window.getSelection().getRangeAt(0);
this.rangeClone = range.cloneRange();
Комментарии:
1. Я не понимаю, что ты имеешь в виду. Этот метод является частью моей службы. Вы хотите сказать, что это должно быть в моем коде компонента? Должен ли код, который вы включили, заменить код в моем методе?
2. да, это должно быть в компоненте, вместо того, чтобы использовать ваш метод, используйте логику, которую я отправил