SAPUI5创建没有视图的控制器

时间:2018-05-02 04:22:50

标签: model-view-controller controller sapui5

我正在使用SAPUI5,Web IDE开发应用程序。是否可以在没有视图的情况下创建控制器?因为我需要一个自定义控制器来处理应用程序的逻辑,然后再将其提交给服务器。

我尝试创建一个没有视图的控制器。但它让我错了。

以下是我的示例代码。

/*global location*/
sap.ui.define([
    "product/controller/BaseController",
    "sap/ui/model/json/JSONModel",
    "sap/ui/core/routing/History",
    "product/model/formatter"
], function(BaseController, JSONModel, History, formatter) {

        onInit: function() {
            sap.ui.getCore().getEventBus().subscribe(
                "SomeChannel",
                "SomeEvent",
                this.someFunctionOfTheFirstController,
                this
            );
        }

    processLogic: function (sChannelId, sEventId, sData) {
        console.log(
            "Function of the first controller " + sData
        );
    }
});

任何解决方案如何修复它并创建没有视图的控制器和方法。

1 个答案:

答案 0 :(得分:2)

我猜你必须返回控制器对象本身。您正在导入BaseController,因此您的控制器可能如下所示:

sap.ui.define([
    "product/controller/BaseController",
    "sap/ui/model/json/JSONModel",
    "sap/ui/core/routing/History",
    "product/model/formatter"
], function(BaseController, JSONModel, History, formatter) {

    return BaseController.extend("product.controller.MyController", {
        onInit: function() {
            sap.ui.getCore().getEventBus().subscribe(
                "SomeChannel",
                "SomeEvent",
                this.someFunctionOfTheFirstController,
                this
            );
        },

        processLogic: function (sChannelId, sEventId, sData) {
            console.log("Function of the first controller " + sData);
        }
   });
});

之后您可以通过调用

来加载控制器
const myController = sap.ui.controller("product.controller.MyController");