如何在 Cloud Foundry 的 Fiori launchpad 中使用自定义控件

How to use custom control in Fiori launchpad of Cloud Foundry

当我在 Cloud Foundry 的 Fiori 启动板中将 Monitor 应用程序部署为 SAPUI5 应用程序时,遇到错误:

404 Not Found: https://sapui5.hana.ondemand.com/resources/sap/ui/iot/controls/IoTChart.js

我在 FLP 中的配置:

/xs-app.json:

{
  "source": "^/resources/sap/ui/iot/(.*)$",
  "destination": "IOTAS_CONTROLS",
  "target": "/sap/ui/iot/"
}

/mtad.yaml

modules:
    requires:
      - name: IOTAS_CONTROLS
        group: destinations
        properties:
        forwardAuthToken: true
        strictSSL: false
        name: IOTAS_CONTROLS
        url: ~{url}
resources:
  - name: IOTAS_CONTROLS
    properties:
    url: https://sapuiiot-sb.cfapps.sap.hana.ondemand.com

/Main.view.xml

     <mvc:View
            controllerName="monitor.controller.Main"
            xmlns:iot="sap.ui.iot.controls"
            xmlns:iotele="sap.ui.iot.elements"
          xmlns:action="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1"
            displayBlock="false">
            <iot:IoTChart noOfHours="1" headerTitle="Temperature &amp; Gas Volume" subheaderTitle="Unit: Degree &amp; M3"/>

我尝试读取“https://xxx-flp-sandbox.cfapps.sap.hana.ondemand.com/resources/sap/ui/iot/controls/IoTChart.js" in Controller.js, it is redirected to "https://sapuiiot-sb.cfapps.sap.hana.ondemand.com/sap/ui/iot/controls/IoTChart.js”成功,证明xs-app.json中的路由有效。

所以我的问题是,如果在 XML 视图中需要 sap.ui.iot.controls,它总是会调用域:https://sapui5.hana.ondemand.com 而没有在 xs-[=55= 中传递路由].

这个项目在webIDE中运行成功,因为在neo-app.json中,它定义了一个路由,重定向所有/resource/,请求总是在webIDE主机中,但是在cloud foundry中, 它在 sapui5.hana.ondemand host

有什么建议吗?


尝试过:

jQuery.sap.registerResourcePath("iotChart", "../../../../resources/sap/ui/iot/library")
jQuery.sap.require("iotChart")

//Still load host sapui5.hana.ondemand.com
var core=sap.ui.getCore();
core.loadLibrary("sap.ui.iot.controls");

通过在 Component.js 中添加一行解决:

init : function() {
    jQuery.sap.registerModulePath("sap.ui.iot", "../../../../resources/sap/ui/iot");
}

此外,"sap.ui.iot" 仍然不能在 rootView.view.xml 声明,因为到那时,路径还没有注册。但是 new sap.ui.controls.IoTChart() 可以用在 controller