使用 SAP WebIDE 中的适应项目覆盖 ext/controller 中的标准方法

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

我们正在尝试通过 WebIDE 中的 Adaptation 项目扩展标准 Fiori 应用程序。我们试图覆盖 ext/controller/SourceOfSupplyList.controller.js 中的函数,但甚至无法访问控制器扩展文件中的控制器 (SourceOfSupplyList)。有办法做到这一点吗?

下面是我们的代码。我们可以访问 utils 路径和里面的文件,但我们甚至无法访问 ext/controller 路径。

sap.ui.define([
        'sap/ui/core/mvc/ControllerExtension',
        'sap/ui/core/mvc/OverrideExecution',
        'ui/s2p/mm/sspreq/manages1/utils/formatter'
    ],
    function (
        ControllerExtension, OverrideExecution, formatter
    ) {
        "use strict";
        return ControllerExtension.extend("customer.zTest.SourceOfSupplyListExtension", {

            metadata: {
                // extension can declare the public methods
                // in general methods that start with "_" are private
                methods: {
                    publicMethod: {
                        public: true /*default*/ ,
                        final: false /*default*/ ,
                        overrideExecution: OverrideExecution.Instead /*default*/
                    },
                }
            },

            override: {
                onInit: function () {
                    alert("onInitOverride");
                    const originalPrototype = Object.assign({}, formatter);
                    formatter.supplierFieldControl = function (oEvent) {

                        // we could overwrite the function in the formatter just fine
                        console.log("supplierFieldControlExtension");

                        // you can still call the original method too
                        originalPrototype.supplierFieldControl.apply(this, arguments);
                    };
                    console.log(ui/s2p/mm/sspreq/manages1/ext/controller/SourceOfSupplyList); //unable to access ext/controller
                    debugger;
                }

            }
        });
    });
sapui5 sap-web-ide
1个回答
0
投票

您应该能够从扩展代码中的

this.base
访问基本控制器的方法。这记录在主题“控制器”中:

在控制器扩展的方法中,保留的

base
成员允许访问扩展控制器的公共功能。可以使用
this.base.basePublicMethod()
调用功能。

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