我有一个UI5应用程序,可以从CDN加载UI5库,并且在Web应用程序的文件夹中有一个自定义模块。但是我的应用程序找不到我的自定义模块,而是在CDN上托管的UI5库中对其进行搜索。如何告诉我的应用程序在哪里可以找到我的自定义模块?
我的项目结构如下:
index-html的代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Quickstart</title>
<script id="sap-ui-bootstrap"
src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"
data-sap-ui-theme="sap_belize"
data-sap-ui-libs="sap.m, sap.ui.layout, sap.tnt"
data-sap-ui-resourceroots='{"Quickstart": "./"}'
data-sap-ui-async="true">
</script>
<script>
sap.ui.getCore().attachInit(function () {
sap.ui.require([
"sap/ui/core/mvc/XMLView",
"MyModule"
], function (XMLView, MyModule) {
XMLView.create({viewName: "Quickstart.App"}).then(function (oView) {
oView.placeAt("content");
});
});
});
</script>
</head>
<body class="sapUiBody" id="content"></body>
</html>
任何我的MyModule.js都这样定义:
sap.ui.define([], function (JSONModel) {
"use strict";
return {
};
});
这是我在浏览器控制台中看到的错误:
当需要自己的模块时,您必须在依赖性路径前面加上已注册的URL前缀之一。
给出this project structure和data-sap-ui-resourceroots='{"Quickstart": "./"}'
,可能需要这样的模块:
sap.ui.require([
"sap/ui/core/mvc/XMLView",
"Quickstart/MyModule",
]/*...*/);
PS:当定义具有sap.ui.define
的模块时,依赖路径可以是相对的("./MyModule"
)。