无法在Fiori Elements中使用MVC控制器设置未定义错误的属性" oView"

2020-08-16 21:59发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我已经用Fiori Elements创建了一个List Report应用程序,当我尝试在控制器扩展中尝试使用mvc控制器代替sap.ui.controller时收到错误。 目前,我正在使用SAPUI5 1.60.27版本。

我定义了一个控制器扩展,当我使用sap.ui.controller时,它可以正常工作:

 sap.ui.define([
 " sap/ui/core/mvc/Controller"
 ],函数(控制器){
 "使用严格";

 var oController = {
 onInit:function(){
 },

 AdaptNavigationParameterExtension:function(oSelectionVariant,oObjectInfo){
 }
 };

 返回sap.ui.controller(" com.sap.myapp.ext.controller.ListReportExtension",oController);
 });  

当我尝试使用mvc控制器而不是" sap.ui.controller"时,我确实在类sap.ui.core.mvc.View的方法" connectToView"上收到错误消息。

//使用" sap/ui/core/mvc/Controller"
 返回Controller.extend(" com.sap.myapp.ext.controller.ListReportExtension",oController);

//返回sap.ui.controller(" com.sap.myapp.ext.controller.ListReportExtension",oController);  

该错误似乎是由于在异步模式(如Promise)中调用方法" connectToView",以及在执行承诺时未定义的oController对象而发生的。 有人知道什么可能导致此问题吗?

(37.2 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我已经用Fiori Elements创建了一个List Report应用程序,当我尝试在控制器扩展中尝试使用mvc控制器代替sap.ui.controller时收到错误。 目前,我正在使用SAPUI5 1.60.27版本。

我定义了一个控制器扩展,当我使用sap.ui.controller时,它可以正常工作:

 sap.ui.define([
 " sap/ui/core/mvc/Controller"
 ],函数(控制器){
 "使用严格";

 var oController = {
 onInit:function(){
 },

 AdaptNavigationParameterExtension:function(oSelectionVariant,oObjectInfo){
 }
 };

 返回sap.ui.controller(" com.sap.myapp.ext.controller.ListReportExtension",oController);
 });  

当我尝试使用mvc控制器而不是" sap.ui.controller"时,我确实在类sap.ui.core.mvc.View的方法" connectToView"上收到错误消息。

//使用" sap/ui/core/mvc/Controller"
 返回Controller.extend(" com.sap.myapp.ext.controller.ListReportExtension",oController);

//返回sap.ui.controller(" com.sap.myapp.ext.controller.ListReportExtension",oController);  

该错误似乎是由于在异步模式(如Promise)中调用方法" connectToView",以及在执行承诺时未定义的oController对象而发生的。 有人知道什么可能导致此问题吗?

(37.2 kB)
付费偷看设置
发送
2条回答
亦是此间程序员
1楼 · 2020-08-16 22:45.采纳回答

你好,马修斯,

您不能使用sap/ui/core/mvc/Controller.extend为Fiori元素组件(如ListReport,ObjectPage)创建控制器扩展对象。 不建议使用sap.ui.controller方法,因为它可以同步工作。 SAP UI5核心团队提供了一种方法,可以创建简单对象作为扩展控制并返回。 以下代码显示了实现

 sap.ui.define([

 " sap/ui/core/mvc/Controller"

 ],函数(控制器){
         "使用严格";
 var oController = {
 onInit:function(){},
 AdaptNavigationParameterExtension:function(oSelectionVariant,oObjectInfo){}
         };
         返回oController;
 }); 

此方法可以利用异步初始化,并且可以与Fiori元素一起顺利使用。 但不幸的是,UI5版本1.61中引入了对此功能的支持。 一旦开始使用SAP UI5 1.61或更高版本,就可以使用上述方法,并且该方法应该可以顺利进行。

希望获得帮助。

此致

Vinod

xfwsx85
2楼-- · 2020-08-16 23:00

嗨Vinod,

感谢您的信息。

在这种方法中,如何将BaseController与控制器一起使用? 使用sap.base.util.extend还是jQuery.extend?

关于

Matheus

一周热门 更多>