Автоматически растущая текстовая область имеет недопустимую высоту после рендеринга в sapui5

У меня есть представление XML с автоматически растущим sap.m.TextArea

<TextArea value="{/abstract}" growing="true" growingMaxLines="100" maxLength="5000" rows="5">
    ...
</TextArea>

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

После небольшого исследования я обнаружил, что методы текстовой области onAfterRendering а также oninput использовать метод _adjustHeight который принимает элемент dom и использует его свойство scrollHeight рассчитать высоту. Но когда это называется onAfterRendering там неправильно scrollHeight,

Я пытался вызвать событие ввода, но обработчик ввода в текстовой области пропускает события, которые были инициированы jQuery(). Trigger().

Может быть, у кого-то есть идеи, как этого избежать или уже сталкивался с этой проблемой?

1 ответ

Я только что столкнулся с той же проблемой (1.44.8) при переходе к представлению с TextArea и новой привязкой. Итак, в качестве полного хакерского исправления на данный момент это похоже на работу во время перехода к представлению (в основном ставит недействительным после завершения рендеринга):

// Bug fix - invalidate TextAreas
window.setTimeout(function () {
    this.getView().byId("myTextAreaField").invalidate();
}.bind(this), 0);
Другие вопросы по тегам