SAPUI5 Создать контроллер без представления - PullRequest
0 голосов
/ 02 мая 2018

Я занимаюсь разработкой приложения с использованием 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 голосов
/ 02 мая 2018

Полагаю, вам нужно вернуть сам объект контроллера. Вы импортируете 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");
...