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
- Rename View文件夹到view(命名空间按照惯例采用驼峰命名法)。
- Rename newView.view.xml to NewView.view.xml(按照惯例,类/视图采用 PascalCase)
- Use
data-sap-ui-resourceroots='{ "myproject": "./" }'
.
- 将您的控制器名称更改为myproject.controller.NewView:
Controller.extend("myproject.controller.NewView", {...});
or sap.ui.controller("myproject.controller.NewView",{...});
.
- 在 xmlview 中使用
controllerName="myproject.controller.NewView"
.
- 实例化视图
sap.ui.xmlview({ viewName: "myproject.view.NewView"}).placeAt("content");
.
这样您就不必为项目中的每个子文件夹添加映射。