当前位置: 首页 > Web前端 > HTML

SAPUI5响应式表格sap.m.Table根据不同屏幕宽度动态决定显示或隐藏Column的实现源码讲解试用版

时间:2023-03-28 16:23:33 HTML

写作动机在本教程的前一篇文章中,作者使用了一个实际的例子回答一个学习者关于sap.m.Table的响应式布局特性的问题:SAPUI5应用开发教程170-澄清一些关于SAPUI5响应式表单sap.m.Table的常见误解在文末我们提出了一个扩展问题:SAPUI5框架的源码是如何根据minScreenWidth属性和当前屏幕尺寸来决定某一列是隐藏还是显示的?这个逻辑的实现源码在SAPUI5框架中的什么位置?我首先尝试让ChatGPT回答这个问题:ChatGPT的回答似乎还不错。不过仔细看了之后,不用去系统里查查ChatGPT提到的函数名_applyVisibility来验证,就觉得不对劲。笔者文章深入研究SAPUI5框架代码系列之二:UI5控件的渲染器中提到每个SAPUI5控件都有自己的渲染器,负责在XML视图中定义SAPUI5控件的静态属性,以及控制器JavaScript文件中运行时修改的动态属性,都呈现为本机HTML代码。是否显示等任务也在渲染器文件中实现。这些渲染器实现文件一般遵循命名约定<控件名称>Renderer.js。但是现在ChatGPT说函数_applyVisibility是在sap.m.Column本身实现的,而不是在renderer文件中实现的,这让我很疑惑。所以我对SAPUI5源代码进行了全局搜索,根本找不到一个名为_applyVisibility的函数。我继续问ChatGPT,这个_applyVisibility函数在哪个JavaScript文件里?ChatGPT回复说Column.js文件的路径在sap.m/src/Column.js。这个路径确实是正确的:https://github.com/SAP/openui5/blob/master/src/sap.m/src/sap/m/Column.js但是这个路径下的文件里还是没有_applyVisibility函数.所以ChatGPT的回答是不可信的。下面小编就为大家揭晓正确答案。