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

标签 javascript textarea sapui5 autogrow

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

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

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

经过小型研究,我发现文本区域方法 onAfterRenderingoninput 使用方法 _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/

相关文章:

javascript - 仅在定义属性时推送

javascript - 从保存的文本区域 react 显示换行符

javascript - 如何存储数字的历史记录

jquery - 如何在不实际选择sapui5中表的行的情况下获取行详细信息

javascript - XML 的 UI5 屏幕尺寸相关属性

javascript - 简单来说,thunk 和高阶函数有什么区别?

javascript - Jquery 特别事件?这些是什么?我该如何使用它们?这个例子是否适合使用 Jquery 特殊事件?

javascript - 崇高文本3 : Color coding removed for javascript

javascript - 是什么导致警报复选框显示附加复选框?

javascript - sap.m.PlanningCalendarRow 中的约会对齐