我有自动增长 sap.m.TextArea 的 xml View
<TextArea value="{/abstract}" growing="true" growingMaxLines="100" maxLength="5000" rows="5">
...
</TextArea>
如果我输入足够大的文本,需要超过 5 行,保存它并重新加载页面文本区域将以极大的高度呈现。如果我们尝试输入某些内容,文本区域将根据文本调整其高度。
经过小型研究,我发现文本区域方法 onAfterRendering
和 oninput
使用方法 _adjustHeight
,该方法采用 dom 元素并使用其属性 scrollHeight
来计算高度。但是当在 onAfterRendering
中调用它时,出现错误的 scrollHeight
。
我尝试触发输入事件,但文本区域中的输入处理程序会跳过由 jQuery().trigger() 触发的事件。
也许有人有如何避免这种情况的想法或者已经面临过这个问题?
最佳答案
在导航到具有 TextArea 和新绑定(bind)的 View 时,我刚刚遇到了同样的问题 (1.44.8)。因此,作为目前的完整黑客修复,这似乎在导航到 View 期间起作用(基本上在渲染完成后使无效):
// Bug fix - invalidate TextAreas
window.setTimeout(function () {
this.getView().byId("myTextAreaField").invalidate();
}.bind(this), 0);
关于javascript - 在 sapui5 中渲染后自动增长文本区域的高度无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45877342/