Jerry 从 2014 年加入 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,曾经在 SAP 社区和“汪子熙”微信公众号上发表过多篇关于 SAP UI5 工作原理和源码解析的文章。
在 Jerry 这篇文章对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好? 曾经提到,Jerry 也是从 SAP UI5 菜鸟一路走过来,深知只有 ABAP 开发背景的开发者,向 SAP UI5 开发领域转型的不易,因此我在业余时间设计了这份适合 SAP UI5 初学者的学习教程,把开发一个完整的 SAP UI5 应用的流程,拆分成若干个步骤,力求每个步骤里,把涉及到的知识点都涵盖到。这些知识点可能不像我的 UI5 源码分析系列文章那么深入,但力求浅显易懂,便于 SAP UI5 初学者理解。
本教程每一个步骤的源代码,都存放在我的 Github 上,分别用文件夹 01,02,03 等等来标识。
每一个步骤均是前一步骤的基础上,添加了若干新特性。建议零基础或者对 SAP UI5 知之甚少的初学者,按照顺序从第一个步骤开始循序渐进地学习,把这些代码下载到本地,配合教程的文字讲解,自己动手,以加深理解。
大家如果对教程的每个步骤有任何疑问,欢迎在教程对应的步骤文章里给我评论,进行留言。
本教程的前两篇文章,我们的 SAP UI5 应用界面里显示的 Hello World,一直都是通过 div 标签实现的。
本文作为这个教程的第三个步骤,我们会真正开始接触 SAP UI5 提供的控件之一:Text.
本步骤使用的源代码在下面这个链接处下载:
https://github.com/wangzixi-diablo/ui5-tutorial
同本教程的前一步骤相比,本步骤的 index.html 和 index.js 文件都增添了一些新的内容。
首先看这个步骤完成后的效果。
浏览器打开 index.html, 能看到 Hello world 的字符串,同时鼠标放上去,能看到一个 tooltip:
下面是具体的修改细节。
index.html
步骤1和2里,我们都使用 body 标签里的 div 标签,来显示 Hello world.
但是本步骤里,大家看,body 标签里包含的 div 标签内容是空的。同时,该 div 标签多了一个 id 属性,内容为 content. 并且有一个 CSS class,名为 sapUiBody. 这个 class 是 SAP UI5 标准的 CSS 库提供的,稍后我们会查看这个 class 实现了什么样的视觉效果。
这个 id 为 content 的 div 标签,我们又称其为占位符 place holder,稍后我们创建的第一个 SAP UI5 控件,即 Text 控件,会放置在这个占位符里。也就是说,这个占位符 div 标签,扮演的是一个容器的角色,容纳其他通过 JavaScript 代码在运行时创建的 SAP UI5 控件。
这里的 id 值 content,可以任意起,只需要和下面即将介绍的 index.js 里调用的 placeAt 方法里传入的 id 保持一致即可。
index.js
这段代码有4处关键点,如下图标注所示:
sap.ui.define 方法
因为我们在本步骤需要使用到 SAP UI5 提供的 Text 控件,该控件位于命名空间 sap.m 内,故需要先使用 sap.ui.define 方法,加载 sap.m.Text 控件的实现。
sap.ui.define 方法接收两个参数,第一个参数的类型是数组,里面存放需要加载的 SAP UI5 库的 url 集合,本例为 sap/m/Text.
第二个参数是一个回调函数,当 sap.ui.define 成功加载所需的库文件之后,会自动调用这个回调函数,并将加载成功的库文件的实现,作为输入参数,传递给回调函数。在我们这个例子里,回调函数即代码第三行指定的 function 函数,输入参数 Text,即是 sap.ui.define 成功加载 sap.m.Text 库之后传递给回调函数的参数。
关于其他关键点的详细介绍,请参考我的文章:SAP UI5 初学者教程之三:开始接触第一个 SAP UI5 控件