簡體   English   中英

angularjs,ui路由器在狀態url的開頭訪問參數

[英]angularjs, ui-router access to parameter at the beginning in the state url

我有一個用HTML5 / JavaScript精心編寫的前端Web應用程序,MVC由AngularJS框架使用UI-Router管理。

現在...我需要使用此模式通過單個應用程序來管理更多客戶:

因此,在Angular的引導文件的config函數中,我必須執行以下操作:

 .state('home.dashboard', {
     url: '/:applicationName/home/dashboard',
     templateUrl: '/views/contents/dashboard.html'
  });

因此問題是:applicationName是一個唯一名稱,用於檢索存儲在數據庫中的對應的applicationId(System.Guid)(此applicationId用於從數據庫中檢索對應的applicationName數據,因此用於所有請求)。

所以問題是:在解析狀態url之前,我可以檢索applicationName並向rest api發出請求,以獲取對應的applicationId並將其存儲在角度服務中; 然后進入狀態。

可能嗎? 如果是的話,我該怎么做?

非常感謝大家!

洛倫佐

我認為您應該在應用程序運行功能中使用$ locationChangeStart事件,您可以在其中從數據庫中獲取應用程序名稱(使用服務/提供程序)。

        app.run(["$rootScope", "$location", "$window",function ($rootScope, $location, $window){
             $rootScope.$on("$locationChangeStart", function (event, next, current) {
                 alert($location.$$path);

             });

        }])

這可以通過許多方式來完成。 我有一個建議,

  1. 擁有默認路由並編寫控制器
  2. 在控制器內部,請確保調用API並獲取應用程序ID
  3. 在控制器內部,您可以執行$ state.go(),請參閱: https : //github.com/angular-ui/ui-router/wiki/URL-Routing#using-parameters-without-specifying-them-in-state -網址

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM