路由和导航

2020-08-20 10:18发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,我正在看一个应用程序,但我...

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

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


您好,我正在看一个应用程序,但我不了解以下内容:

this.oInitialLoadFinishedDeferred.resolve();

或如何使用它,我找不到很多有关的文档。

如果有人可以解释这些功能在做什么:

我通过另一个函数传递了该数据:

this.myNavToWithoutHash({currentView:this.getView(),targetViewName:" namespace.view.Detail",targetViewType:" XML"});

 myNavToWithoutHash:函数(oOptions){
//__ PORDES var oSplitApp = this._findSplitApp(oOptions.currentView);
 var oDataContext = {
 orderData:this.orderData,
 opeData:this.getOwnerComponent()。getModel(" JsonOrdData")。getData()
 };
 var oSplitApp = this.getRouter()。getTarget('splitviewTarget')._ oViews._oViews ['namespace.view.AppDetOpe']。getContent()[
 0];
 oSplitApp.removeAllDetailPages();
 oSplitApp.addDetailPage(this.getRouter()。getTarget('splitviewTarget')._ oViews._oViews [oOptions.targetViewName]);
 this.eventBus = sap.ui.getCore()。getEventBus();
 this.eventBus.publish(" MasterToDet"," DataPasing",{
 数据:oDataContext
 });
 },

 _findSplitApp:函数(oControl){
 var sAncestorControlName =" splitContainerControl";
 如果(sap.ui.core.mvc.View的oControl实例&& oControl.byId(sAncestorControlName)){
 返回oControl.byId(sAncestorControlName);
 }
 返回oControl.getParent()吗?  this._findSplitApp(oControl.getParent(),sAncestorControlName):null;
 },

 
2条回答
宇峰Kouji
2020-08-20 11:07

嗨,

我猜这是来自现有主详细信息应用程序的代码。

oInitialLoadFinishedDeferred.resolve(); ->这正在兑现诺言。 我记得在较早的主细节模板中使用过此方法,以使应用程序知道已加载数据。 用于更新表格的总行数。 或执行其他一些首先需要数据的工作。

myNavToWithoutHash->此功能可能是一个自我实现的功能。 据我了解的代码,它正在使用主服务器中新选择的行的详细信息更新当前视图。 我想这样做是因为路由不是唯一的,因此在主服务器中选择新行时不会更改。 当路线不是唯一的并且您再次导航到同一条路线时,它将不会再次触发onRouteMatched函数。

我认为这不是最好的方法。 所选项目的ID应该是路由的一部分,因此onRouteMatched每次都会被触发。 这样可以避免您需要使用此自定义导航功能。

希望这会有所帮助

一周热门 更多>