在模块的config方法中注入自定义服务

时间:2019-02-05 16:07:36

标签: angularjs

我想通过基于URL中有用户会话或令牌的自定义身份验证逻辑来​​限制某些路由的访问。

为此,我想在angularjs应用程序模块的config方法中获取会话或令牌。并测试要加载的状态:

    angular.module('myModyle')
      .run(config);

    function config($stateProvider, authService) {
      var token = $stateParams.token;
      if (token) {
        getStatesWithoutAccount();
      } else {
        authService.getSession()
          .then(function (sessionUser) {
              if (sessionUser) {
                getStatesWithAccount();
              } else {
                // redirect to authentication form
              }
            }
          );
      }
    };

...

function getStatesWithAccount() {
  $stateProvider
    .state('PageWithAccount', {
      url: '/withAccount',
      templateUrl: 'myTemplate.html',
      controller: 'myController'
...
}

...

function getStatesWithoutAccount() {
  $stateProvider
    .state('PageWithoutAccount', {
      url: '/withoutAccount',
      templateUrl: 'myTemplate1.html',
      controller: 'myController1'
...
}

但是这种方法行不通,因为我无法在配置级别注入 authService (我只能在该级别注入提供程序),任何提示或解决此问题的想法?

0 个答案:

没有答案