从控制器

时间:2015-12-12 09:08:03

标签: angularjs authentication controller angular-services

我试图制作一个登录模块。我定义了一个cotroller,我试图从服务访问函数,我收到了一个ReferenceError:

  

ReferenceError:未定义Auth

控制器:

class NavbarController {
  constructor($location) {
    this.$location = $location;
    this.isLoggedIn = Auth.isLoggedIn;
    this.isAdmin = Auth.isAdmin;
    this.getCurrentUser = Auth.getCurrentUser;
  }

  isActive(route) {
    return route === this.$location.path();
  }
}

angular.module('rideSharingApp')
  .controller('NavbarController', NavbarController);

服务:

(function() {

function AuthService($location, $http, $cookies, $q, appConfig, Util, User) {
  var safeCb = Util.safeCb;
  var currentUser = {};
  var userRoles = appConfig.userRoles || [];

  if ($cookies.get('token') && $location.path() !== '/logout') {
    currentUser = User.get();
  }

  var Auth = {
    isLoggedIn: function(callback) {
      if (arguments.length === 0) {
        return currentUser.hasOwnProperty('role');
      }

      return Auth.getCurrentUser(null)
        .then(function(user) {
          var is = user.hasOwnProperty('role');
          safeCb(callback)(is);
          return is;
        });
    }
  };

  return Auth;
}

angular.module('rideSharingApp.auth')
  .factory('Auth', AuthService);

})();

我不知道为什么会收到这个错误。我不太了解角度,所以你能帮我解决这个错误吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您未在“ NavbarController ”中传递“ Auth ”依赖关系... 在Controller的构造函数中传递Auth ....希望它能解决问题...

谢谢