gpt4 book ai didi

sapui5 - 如何在 UI5 1.38 中重用另一个应用程序的组件?

转载 作者:行者123 更新时间:2023-12-03 13:41:24 25 4
gpt4 key购买 nike

环境
框架:SAPUI5 V1.38.39
IDE : SAP WEB IDE
问题
我想在另一个应用程序中使用 SAPUI5 应用程序,为此我找到了以下资源:https://blogs.sap.com/2017/04/05/sapui5-how-to-reuse-parts-of-a-sapui5-application-in-othermultiple-sapui5-applications/
来自我想重用另一个应用程序的代码
在 init 中的 component.js 中我使用了:

var sPath = sHostUrl.includes("webidetesting") ? "https://gtyext.net" : sHostUrl;
jQuery.sap.registerModulePath("ztntapp", `${sPath}/sap/bc/ui5_ui5/sap/ztntapp/`);
在我看来:
<core:ComponentContainer 
name="ztntapp"
manifestFirst="true"
component="ztntapp">
</core:ComponentContainer>
并在 neo-app.json 中
{
"path": "/sap/bc/ui5_ui5/sap/ztntapp/",
"target": {
"type": "destination",
"name": "gtyext_net",
"entryPath": "/sap/bc/ui5_ui5/sap/ztntapp/"
},
"description": "namespace.tntapp Resources"
}
来自重用应用程序的代码
在 component.js 中
sap.ui.define([
"sap/ui/core/UIComponent",
"sap/ui/Device",
"./model/models"
], function (UIComponent, Device, models) {
"use strict";

return UIComponent.extend("TrackAndTrace.ztntapp.Component", {

metadata: {
manifest: "json"
},
init: function () {
[...]
},
[...]
});
});

在 neo-app.json 中(它是通过 SAP WebIDE 创建的默认值):
{
"welcomeFile": "/webapp/index.html",
"routes": [
{
"path": "/resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/resources",
"version": "1.38.45"
},
"description": "SAPUI5 Resources"
},
{
"path": "/test-resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/test-resources",
"version": "1.38.45"
},
"description": "SAPUI5 Resources"
},
{
"path": "/webapp/resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/resources",
"version": "1.38.45"
},
"description": "SAPUI5 Resources"
},
{
"path": "/webapp/test-resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/test-resources",
"version": "1.38.45"
},
"description": "SAPUI5 Test Resources"
}
],
"sendWelcomeFileRedirect": true
}
错误信息

Uncaught Error: failed to load 'ztntapp/Component.js' fromhttps://webidetesting278-a392f.dispatcher.hana.ondemand.com/sap/bc/ui5_ui5/sap/ztntapp/Component.js:Error: failed to load 'TrackAndTrace/ztntapp/model/models.js' fromresources/TrackAndTrace/ztntapp/model/models.js


neo-app.json 的要点:
  • 应用程序“ztntapp”本身在此应用程序之外运行
  • component.js 的路径是 https://webidetesting278-a392f.dispatcher.hana.ondemand.com/sap/bc/ui5_ui5/sap/ztntapp/Component.js然而模型的路径不知何故变成了 https://webidetesting278-a392f.dispatcher.hana.ondemand.com/webapp/resources/TrackAndTrace/ztntapp/model/models.js (我不知道为什么是“webapp/resources”)
  • https://webidetesting278-a392f.dispatcher.hana.ondemand.com/sap/bc/ui5_ui5/sap/ztntapp/model/models.js找到,资源可能应该从这里加载而不是/webapp/resources/TrackAndTrace/但我不知道怎么做

  • 其他研究
  • 使用neo-app.json文件,问题是定位资源
    从“ztntapp”中,我看到还有一个
    jQuery.sap.registerResourcePath 但我不知道如何使用它
    本案
  • 最佳答案

    在您的第一个应用程序(主应用程序)中,请使用 manifest.json 添加组件用法而不是 jQuery.sap.registerModulePath在 Component.js 中:

    "componentUsages": {
    "ztntapp": {
    "name": " TrackAndTrace.ztntapp",
    "settings": {},
    "componentData": {},
    "lazy": true
    }
    }
    然后您需要调整您的主应用程序 neo-app.json 以启用运行配置以访问您的第二个应用程序(重用应用程序)
    "routes": [
    {
    "path": "/webapp/resources/TrackAndTrace/ztntapp",
    "target": {
    "type": "application",
    "name": "ztntapp"
    }
    },
    {
    "path": "/resources/TrackAndTrace/ztntapp",
    "target": {
    "type": "application",
    "name": "ztntapp"
    }
    },
    然后对于 resue 应用程序:部署您的应用程序,使其在 SAP WebIDE Fullstack 工作区中注册。
    然后对于 WebIDE 中的主应用程序,选择运行 > 运行配置 > 添加配置 > 作为 Web 应用程序运行 > 高级设置标记使用我的工作区,然后按获取资源版本。在下面的列表中,您应该会在资源名称下看到您的重用应用程序:
    WebIDE Config

    关于sapui5 - 如何在 UI5 1.38 中重用另一个应用程序的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63391368/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com