SAPUI5-ComponentContainer-向后路由时重复的ID。

2020-09-08 14:31发布

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

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


嗨,

我目前在父应用程序中制作了一个组件容器,该子容器在子应用程序中包含搜索功能。 搜索后,用户将转到上级应用程序中可以正常工作的页面。

但是,如果我想返回到包含组件容器的页面,则会给我两个重复的id错误。

添加具有重复ID'__component1 --- View1'的元素

'添加具有重复ID'__component2 --- View1'的元素

但是,我通过分配包含id的组件容器并对页面进行路由时对其进行了.destroy修复了第一个。

但是,"添加具有重复ID'__component2 --- View1'的元素时出现错误,我不太确定从哪里引用了。 我也尝试对该容器执行.destroy,但是在执行sap.ui.getcore()。byid时似乎不存在。

下面,我为parentapp .xml和.js提供了代码

parentapp.xml

 
 <页面>
 <页面标题="客户搜索" id =" pageID" backgroundDesign ="透明" enableScrolling =" false">
 <内容>
 
 
 
 
  

parentapp.js

 sap.ui.define([
 " sap/ui/core/mvc/Controller",
 " sap/ui/model/json/JSONModel",
 " sap/m/MessageBox",
 " sap/ui/model/FilterOperator",
 " sap/m/MessageToast",
 " sap/m/Dialog",
 " sap/m/Text",
 " sap/m/Button",
 " sap/ui/model/Filter"
 ],
 函数(控制器,JSONModel,MessageBox,FilterOperator,MessageToast,对话框,文本,按钮,过滤器){
 "使用严格";


 var that = this;
 var oRouter;
 var componentSearch;


 var PageController = Controller.extend(" Z_LE.Z_LE.controller.BookAppointmentV4",{




 onInit:函数(){
 那=这个;
 componentSearch = that.byId(" componentSearch");
//var comp2 = that.byId(" __ component2 --- View1");

 var route = sap.ui.core.UIComponent.getRouterFor(this);
 route.attachRouteMatched(function(oEvent){
 componentSearch.destroy();
//comp2.destroy();
 });



 },


 返回PageController;
 });
 

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

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


嗨,

我目前在父应用程序中制作了一个组件容器,该子容器在子应用程序中包含搜索功能。 搜索后,用户将转到上级应用程序中可以正常工作的页面。

但是,如果我想返回到包含组件容器的页面,则会给我两个重复的id错误。

添加具有重复ID'__component1 --- View1'的元素

'添加具有重复ID'__component2 --- View1'的元素

但是,我通过分配包含id的组件容器并对页面进行路由时对其进行了.destroy修复了第一个。

但是,"添加具有重复ID'__component2 --- View1'的元素时出现错误,我不太确定从哪里引用了。 我也尝试对该容器执行.destroy,但是在执行sap.ui.getcore()。byid时似乎不存在。

下面,我为parentapp .xml和.js提供了代码

parentapp.xml

 
 <页面>
 <页面标题="客户搜索" id =" pageID" backgroundDesign ="透明" enableScrolling =" false">
 <内容>
 
 
 
 
  

parentapp.js

 sap.ui.define([
 " sap/ui/core/mvc/Controller",
 " sap/ui/model/json/JSONModel",
 " sap/m/MessageBox",
 " sap/ui/model/FilterOperator",
 " sap/m/MessageToast",
 " sap/m/Dialog",
 " sap/m/Text",
 " sap/m/Button",
 " sap/ui/model/Filter"
 ],
 函数(控制器,JSONModel,MessageBox,FilterOperator,MessageToast,对话框,文本,按钮,过滤器){
 "使用严格";


 var that = this;
 var oRouter;
 var componentSearch;


 var PageController = Controller.extend(" Z_LE.Z_LE.controller.BookAppointmentV4",{




 onInit:函数(){
 那=这个;
 componentSearch = that.byId(" componentSearch");
//var comp2 = that.byId(" __ component2 --- View1");

 var route = sap.ui.core.UIComponent.getRouterFor(this);
 route.attachRouteMatched(function(oEvent){
 componentSearch.destroy();
//comp2.destroy();
 });



 },


 返回PageController;
 });
 
付费偷看设置
发送
2条回答
代楠1984
1楼-- · 2020-09-08 15:17

您是否尝试过设置生命周期。 那可能对您有帮助。 也可能是您需要从组件容器内部销毁搜索组件本身。

半个程序猿
2楼-- · 2020-09-08 15:14

嗨,雅各布,

感谢您的回复。 我已经尝试了所有类型的容器生命周期,但仍然给我相同的错误。

我试图从组件容器内部销毁搜索组件,但是我无法引用ID(不知道什么) id是)尝试引用" __component2 --- View",但是它在任何地方都不存在-即使在通过调试器进行搜索时也是如此。 有什么建议吗?

谢谢。

一周热门 更多>