我有一个用HTML5 / JavaScript精心编写的前端Web应用程序,MVC由AngularJS框架使用UI-Router管理。

现在...我需要使用此模式通过单个应用程序来管理更多客户:


所有客户都有一个applicationName(System.String)
访问应用程序的URL是[domain] /:applicationName / [view state],例如:http://domain.com/MyName/loginhttp://domain.com/MyName/home/dashboard


因此,在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);

             });

        }])

09-25 17:18