我最近为Fiori Launchpad开发了一个SAPUI5应用程序,希望将同一应用程序转换为Freestyle Portal并可以单独使用,因此我需要第二个View。
问题是我有使用相同逻辑的任务。两种视图的Controller
。我尝试使用路由,但是似乎找不到解决方案,该解决方案对我有用,因此,我欢迎提出任何解决此任务的建议。
我对SAPUI5还是很陌生,所以可能是我忽略了一个简单的解决方案,因此请体谅。
关于 Mathias
答案 0 :(得分:0)
请查看SAPUI5 SDK文档中的sap.ui.core.mvc.controller方法扩展类。
您可以使用扩展方法基于UI5标准sap.ui.core.mvc.controller定义一个类,以创建一个包含两个视图所需的常用功能的控制器。然后,您可以在通用控制器上使用扩展定义两个控制器。现在,您将拥有两个包含常用功能的控制器,并且可以添加特定于视图的功能。
请注意,不会创建单独的命名空间。
这是您要创建的结构的轮廓。
通用控制器: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 () {
....
},
});
});