一个很小的tip:比如我想把UI5表格控件里的每列设置成宽度根据显示的内容自适应,需要知道应该调用控件的哪个方法来实现。

一个查看UI5控件所有公有方法的小技巧-LMLPHP

一种办法当然是查SAP帮助文档,得知需要调用控件的公有方法setAutoSizable。

另一种办法是在debugger里研究,因为根据经验,这种公有方法的名称按照惯例一般都是以set开头,如下图:

一个查看UI5控件所有公有方法的小技巧-LMLPHP

根据经验从调试器里的set自动完成列表里的所有条目定位到应该调用setAutoResizable这个方法。下一个问题就是这个方法到底应该传什么参数进去。

直接在调试器里执行方法getMetadata, 展开返回的结果:

一个查看UI5控件所有公有方法的小技巧-LMLPHP

在_mProperties的autoResizable里得知这个set方法应该传一个boolean类型的参数进去:

一个查看UI5控件所有公有方法的小技巧-LMLPHP

反思

这种思路是在runtime时获取控件的元数据,这和Java的反射,ABAP的RTTI实际上异曲同工。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
一个查看UI5控件所有公有方法的小技巧-LMLPHP

一个查看UI5控件所有公有方法的小技巧-LMLPHP

05-29 00:23