我正在进行SAPUI5演练并坚持第4步。(Walkthrough Step 4)
我正在使用Eclipse并且不知道如何更改此代码行,因此它适用于我的项目并且将找到我的视图。
data-sap-ui-resourceroots='{
"sap.ui.demo.wt": "./"
}'
我需要知道要插入什么" sap.ui.demo.wt"使用Eclipse项目时。
感谢任何提示:)
编辑:
现在我有了一个带有按钮的工作页面,触发弹出窗口。
文件夹结构:
SAPUI5_Test
- WebContent
- controller
-> NewView.controller.js
- view
-> NewView.view.xml
- index.html
的index.html:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta charset="UTF-8">
<title>SAPUI5 Walkthrough</title>
<script
id="sap-ui-bootstrap"
src="https://openui5.hana.ondemand.com/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='{
"SAPUI5_Test": "./"
}'>
</script>
<script>
sap.ui.getCore().attachInit(function () {
sap.ui.xmlview({
viewName: "SAPUI5_Test.view.NewView"
}).placeAt("content");
});
</script>
</head>
<body class="sapUiBody" id="content">
</body>
</html>
NewView.view.xml:
<mvc:View
controllerName="SAPUI5_Test.controller.NewView"
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<Button
text="Say hello"
press="onShowHello"/>
</mvc:View>
NewView.controller.js
sap.ui.controller("SAPUI5_Test.controller.NewView", {
onShowHello : function() {
alert("Hello SAPUI5_Controller");
}
});
非常感谢你的帮助!也许这可以帮助将来的某个人:)
答案 0 :(得分:5)
SAPUI5正在以全名搜索视图,控制器或其他类等资源。
假设每个命名空间部分都是一个文件夹,而类/视图名称是文件名。如果是视图,则文件名必须是xxx.view.xml。如果它是一个控制器,文件名必须是xxx.controller.js。
它开始搜索的根文件夹默认是sap-ui-core.js的文件夹。
您可以通过定义data-sap-ui-resourceroots映射来更改根文件夹。它是一个javascript对象,它将命名空间映射到路径(相对于index.html)。
在company.myProject.view.View1
:
/resources/company/myProject/view/View1.view.xml
<script id="sap-ui-bootstrap"
src="resources/sap-ui-core.js"></script>
在company.myProject.View1
处搜索此引导标记/view/View1.view.xml
:
<script id="sap-ui-bootstrap"
src="resources/sap-ui-core.js"
data-sap-ui-resourceroots='{
"company.myProject": "./" }'></script>
在company.myProject.View1
:
ddd/myProject/view/View1.view.xml
<script id="sap-ui-bootstrap"
src="resources/sap-ui-core.js"
data-sap-ui-resourceroots='{
"company": "./ddd" }'></script>
编辑:请注意您必须在地图内使用"
。 '
无效。
编辑:澄清文件夹结构
我建议您将所有内容放在项目命名空间中。使用此文件夹结构:
WebContent
- controller
- NewView.controller.js
- view
- NewView.view.xml
- index.html
data-sap-ui-resourceroots='{ "myproject": "./" }'
。 Controller.extend("myproject.controller.NewView", {...});
或sap.ui.controller("myproject.controller.NewView",{...});
。controllerName="myproject.controller.NewView"
。sap.ui.xmlview({ viewName: "myproject.view.NewView"}).placeAt("content");
实例化视图。 这样您就不必为项目中的每个子文件夹添加映射。
答案 1 :(得分:0)
我遇到了同样的问题,@schnoedel 的解决方案对我不起作用,直到我在 webapp/resources 中安装 openui5 旁边将 src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"
更改为 src="resources/sap-ui-core.js"
。使用本地安装时,似乎 index.html 的位置仅用作 root 。我在使用远程变体时调试了资源根目录,但失败并显示错误消息“无法加载 https://openui5.hana.ondemand.com/resources/view/App.view.xml"。