自动增长的文本区域在 sapui5 中渲染后高度无效

Auto growing text area has invalid height after rendering in sapui5

我有 xml 自动增长的视图 sap.m.TextArea

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

如果我输入超过 5 行的足够大的文本,请保存并重新加载页面文本区域将以非常大的高度呈现。如果我们尝试键入内容,文本区域将根据文本调整其高度。

经过小小的研究,我发现文本区域方法 onAfterRenderingoninput 使用的方法 _adjustHeight 采用 dom 元素并使用其 属性 scrollHeight 来计算身高。但是在onAfterRendering里面调用的时候就出错了scrollHeight.

我试图触发输入事件,但文本区域中的输入处理程序跳过了由 jQuery().trigger().

触发的事件

也许有人知道如何避免这个问题或者已经遇到这个问题?

我在导航到具有 TextArea 和新绑定的视图时遇到了同样的问题 (1.44.8)。因此,作为目前的一个完整的 hack 修复,这似乎在导航到视图期间起作用(基本上在渲染完成后放置一个无效):

// Bug fix - invalidate TextAreas
window.setTimeout(function () {
    this.getView().byId("myTextAreaField").invalidate();
}.bind(this), 0);