我正在使用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
);
}
});
任何解决方案如何修复它并创建没有视图的控制器和方法。
答案 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");