我如何告诉UI5在哪里找到我的自定义模块?

问题描述 投票:0回答:1

我有一个UI5应用程序,可以从CDN加载UI5库,并且在Web应用程序的文件夹中有一个自定义模块。但是我的应用程序找不到我的自定义模块,而是在CDN上托管的UI5库中对其进行搜索。如何告诉我的应用程序在哪里可以找到我的自定义模块?

我的项目结构如下:

Project structure

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 {
    };

});

这是我在浏览器控制台中看到的错误:

Browser console errors

实时示例:http://plnkr.co/edit/0qGeSUEhOvzk6ZKB?preview

sapui5
1个回答
0
投票

当需要自己的模块时,您必须在依赖性路径前面加上已注册的URL前缀之一。

给出this project structuredata-sap-ui-resourceroots='{"Quickstart": "./"}',可能需要这样的模块:

sap.ui.require([
  "sap/ui/core/mvc/XMLView",
  "Quickstart/MyModule",
]/*...*/);

PS:当定义具有sap.ui.define的模块时,依赖路径可以是相对的("./MyModule")。

© www.soinside.com 2019 - 2024. All rights reserved.