在我的SAPUI5应用程序中,我有一个扩展另一个控制器(ExcelGenerator)的控制器(Produzione-Stato)。在Component.js文件中,我添加了以下属性:
customizing: {
"sap.ui.controllerExtensions": {
"cabot.ui.wt.controller.Produzione-Stato": {
controllerName: "cabot.ui.wt.controller.ExcelGenerator",
},
}
}
此阶段的应用程序运行正常。但是,我希望ExcelGenerator控制器扩展另一个控制器(比如C2ExcelGenerator)。我试图通过添加以下内容来修改Component.js文件:
customizing: {
"sap.ui.controllerExtensions": {
"cabot.ui.wt.controller.Produzione-Stato": {
controllerName: "cabot.ui.wt.controller.ExcelGenerator",
},
"cabot.ui.wt.controller.ExcelGenerator": {
controllerName: "cabot.ui.wt.controller.C2ExcelGenerator",
},
}
}
然而,这会引发异常错误。在多级舞台上扩展控制器或使控制器扩展多个控制器的正确方法是什么?
答案 0 :(得分:2)
使用带有extend
语法的类型控制器,疑问场景如下:
Produzione-Stato.controller.js
:
sap.ui.define([
"sap/ui/core/mvc/Controller"
], function(Controller) {
return Controller.extend("cabot.ui.wt.controller.Produzione-Stato", {
onInit: function() {}
...
});
});
ExcelGenerator.controller.js
:
sap.ui.define([
"cabot/ui/wt/controller/Produzione-Stato"
], function(PSController) {
return PSController.extend("cabot.ui.wt.controller.ExcelGenerator", {
onInit: function() {
PSController.prototype.onInit.apply(this, arguments);
}
...
});
});
C2ExcelGenerator.controller.js
:
sap.ui.define([
"cabot/ui/wt/controller/ExcelGenerator"
], function(EGController) {
return EGController.extend("cabot.ui.wt.controller.C2ExcelGenerator", {
onInit: function() {
EGController.prototype.onInit.apply(this, arguments);
}
...
});
});
中的类型化控制器扩展生命周期方法的链接不是自动完成的。您 可以自己控制,是否或何时调用父生命周期 方法。此外,您始终可以访问中定义的方法 原控制器。