[UI5]如何获取当前路线名称?

2020-08-23 03:23发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 在我的应用程序中,我...

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

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


专家们,

在我的应用程序中,我有几条路线,例如:

"路线":[
         {
           " pattern":"详细信息/产品",
           "名称":"产品",
           " target":" productTarget"
         },
         {
           " pattern":"交易/帐户",
           " name":"帐户",
           " target":" accountTarget"
         }
 ] 

例如:用户现在正在访问路线...../detail/Account,当他使用浏览器中的"刷新"按钮刷新整个页面时,该页面将再次加载帐户页面。

但是在我App.controller.js的onInit函数中,我想知道当前路线是什么。 例如,当我在产品页面上刷新时,在App.controller.js的onInit函数中可以获取当前路由为产品,如果在帐户页面上刷新,则可以在App.controller.js的onInit函数中获取当前路由为帐户。 这可能吗? 我在路由中设置了" async:true"。 看来App.controller.js的onInit函数始终在检查当前路由之前?

谢谢!

6条回答
hengyuye
2020-08-23 04:00

自UI5 v1.75起 ,有一个新的API getRouteInfoByHash 提供了路由名称 :

 getCurrentRouteName:function(router = this.getOwnerComponent()。getRouter()){
   const currentHash = router.getHashChanger()。getHash();
   返回router.getRouteInfoByHash(currentHash).name; //从1.75开始
 } 

或者,控制器还可以将处理程序附加到 routePatternMatched 事件,以便收到有关当前路由名称的通知:

 onInit:function(){//根视图
   const router = this.getOwnerComponent()。getRouter();
   router.attachRoutePatternMatched(this.onRoutePatternMatched,this);
  //...
 },
 onRoutePatternMatched:function(event){
   const currentRouteName = event.getParameter(" name");
  //...
 },

发件人: https://stackoverflow.com/a/60152360

一周热门 更多>