SAPUI5 对两个视图使用相同的控制器

SAPUI5 Using the same Controller for two Views

我最近为 Fiori Launchpad 开发了一个 SAPUI5 应用程序,我希望将同一应用程序转换为也可用于 Freestyle Portal 且可单独设置样式,因此我需要第二个视图。

问题是我的任务是使用相同的逻辑。 Controller 两个视图。我试过使用路由,但我似乎找不到适合我的解决方案,所以我欢迎任何有关如何处理此任务的建议。

我也是 SAPUI5 的新手,所以可能是我忽略了一个简单的解决方案,所以请体谅。

关于 马蒂亚斯

请查看 SAPUI5 SDK 文档以了解 class sap.ui.core.mvc.controller 方法扩展。

您可以根据 UI5 标准 sap.ui.core.mvc.controller 定义一个 class,使用扩展方法创建一个包含两个视图所需的通用功能的控制器。然后,您可以在公共控制器上使用 extend 定义两个控制器。现在您将拥有两个包含通用功能的控制器,并且可以添加视图特定功能。

请注意,没有创建单独的命名空间。

这是您要创建的结构的概要。

通用控制器:BaseController.js

sap.ui.define([
    "sap/ui/core/mvc/Controller",
    ... //Other classes needed
], function (Controller, ..) {
    "use strict";
    return Controller.extend("yourApp.controller.BaseController", {
        someMethod: function () {
            ....
        },
    });
});

一个视图的特定控制器 ViewOneController.js

sap.ui.define([
    "yourApp/controller/BaseController",
    ... //Other classes needed
], function (myBaseController, ..) {
    "use strict";
    return myBaseController.extend("yourApp.controller.ViewOneController", {
        someMethod2: function () {
            ....
        },
    });
});