#angular #typescript #tinymce
#angular #typescript #tinymce
Вопрос:
Я использую Angular 8, и в шаблоне у нас есть что-то вроде этого:
<editor
required
class="research-modal__control__input research-modal__control__input__description"
formControlName="description"
id="description"
[inline]="false" //my attempt
placeholder="Description"
[init]="{
base_url: '/tinymce',
suffix: '.min',
inline: true,
height: 500,
menubar: false,
toolbar:
'subscript superscript'
}"
></editor>
Кто-нибудь знает, как установить многострочный режим?
Например, когда я ввожу в это поле textarea что-то вроде:
line1
line2
line3
и в базе данных (Postgres) сохраняется значение с конечными строками, затем после повторного открытия моего всплывающего окна с тегом все отображается в одной строке:
line1 line2 line3
Я не могу найти решение в Интернете… Как я могу включить многострочность?
Ответ №1:
TinyMCE — это HTML-редактор, поэтому содержимое, которое вы загружаете в редактор, должно быть действительным HTML. Если вы просто передадите строку обычного текста без разметки, TinyMCE заключит ее в один блочный элемент ( <p>...</p>
). Возврат каретки и разрывы строк не имеют значения в HTML, поэтому они игнорируются / удаляются.
Комментарии:
1. Хм, хорошо, так какое решение вы предлагаете? После ввода нескольких строк с помощью строки разрыва, возможно, мне следует перехватить текст и заменить символы новой строки, например, <br> и сохранить эту структуру в базе данных?
2. Это будет работать так же, как и преобразование каждой строки в отдельный абзац. Использование
br
тегов оставляет весь элемент в виде одного блочного элемента, что повлияет на определенное поведение в редакторе (вместо того, чтобы делать каждую строку отдельным абзацем). Вам действительно решать, что подходит для вашего варианта использования.