Я использую CKEditor в качестве редактора WYSIWYG для ввода текста на моем сайте. И я столкнулся с проблемой использования этого редактора с угловой директивой ng-show.
Когда редактор загружается с помощью ng-show = "true", редактор отлично работает. Значение панели инструментов всплывает, кнопки на панели инструментов работают, и текст также редактируется.
Однако, когда редактор сначала загружает ng-show = "false", а затем переключается на ng-show = "true", панель инструментов все же появляется, но атрибут contenteditable по какой-либо причине имеет значение false, а кнопки отключены.
Мой экземпляр CKEditor является встроенным редактором и загружается с помощью настраиваемой угловой директивы. Шаблон html устанавливает для атрибута contenteditable значение true.
Попробуйте ng-if instread. Это в основном не делает редактор вообще наоборот. Кажется, что он хорошо работает в вышеупомянутом сценарии.
У вас возникла эта проблема, потому что CKEDITOR пытается изменить textarea
с самого начала рендеринга HTML, но textarea
еще не существовала, поскольку условие ng-show
не было выполнено.
Существуют угловые модули для CKEDITOR, которые мы можем использовать в Интернете. Вы можете выбрать один и использовать его.