我们开始系统的进行SAP UI5的学习。SAP UI5采用的也是MVC的基础架构模型。
在index.html中,我们需要做的内容如下:
①引入相关的SAP UI5库文件
②html标签编辑组件的盛放容器:
<body class="sapUiBody" id="content"></body>
③编写相关的js代码(这个以后要放到单独的文件中)
sap.ui.getCore().attachInit(function () {
new sap.m.Text({
text : "Hello World"
}).placeAt("content");
});
在这里我们使用SAP UI5中的control,定义了一个Text。Text组件在sap.m中,所以我们通过sap.m.Text的方法创建一个新的Text。通过text属性设定其内容为Hello World,这和Sencha Touch的工作原理和编码方式都非常相像。最后利用placeAt方法,将它放置到content中。这就是最简单的Hello world程序。
但是在SAP UI5中,一般的视图采用的都是xml的文件而不是直接写在js代码里,这是和Sencha Touch很大的不同之处。我们改造上面代码,利用xml文件呈现相同的视图。
编写APP.view.xml文件,代码如下:
<mvc:View
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<Text text="Hello World"/>
</mvc:View>
在这里定义了一个view,Text标签及里面的内容都是之后可以读取的。关于XML语言会在以后进行进一步的的学习和介绍。
UI5中采用命名空间的机制,对视图进行加载。我们首先创建一个命名空间sap.ui.demo.wt,并在index.html中加载,修改后代码如下:
<script
id="sap-ui-bootstrap"
src="/resources/sap-ui-core.js"
data-sap-ui-theme="sap_bluecrystal"
data-sap-ui-libs="sap.m"
data-sap-ui-compatVersion="edge"
data-sap-ui-preload="async"
data-sap-ui-resourceroots='{
"sap.ui.demo.wt": "./"
}' >
最后一段引入了这个命名空间,之后我们可以在js代码中引用该视图:
sap.ui.getCore().attachInit(function () {
sap.ui.xmlview({
viewName: "sap.ui.demo.wt.view.App"
}).placeAt("content");
});
通过sap.ui.xmlview引用xml文件,viewName带入文件的命名空间和文件名,就完成了xml视图的引用。运行效果和之前的一样。我们在xml中的代码会被UI5自动编辑成我们需要的代码并正确显示。