点击此处---> 群内免费提供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; },
嗨,
我猜这是来自现有主详细信息应用程序的代码。
oInitialLoadFinishedDeferred.resolve(); ->这正在兑现诺言。 我记得在较早的主细节模板中使用过此方法,以使应用程序知道已加载数据。 用于更新表格的总行数。 或执行其他一些首先需要数据的工作。
myNavToWithoutHash->此功能可能是一个自我实现的功能。 据我了解的代码,它正在使用主服务器中新选择的行的详细信息更新当前视图。 我想这样做是因为路由不是唯一的,因此在主服务器中选择新行时不会更改。 当路线不是唯一的并且您再次导航到同一条路线时,它将不会再次触发onRouteMatched函数。
我认为这不是最好的方法。 所选项目的ID应该是路由的一部分,因此onRouteMatched每次都会被触发。 这样可以避免您需要使用此自定义导航功能。
希望这会有所帮助
查看此博客文章系列:
https://blogs.sap.com/2019/01/08/a-journey-into-the-evolution-of-splitapp-flexible-column-layout-dynamic-page-layout /
这可能会对您有所帮助。
一周热门 更多>