angularjs – 如何在Angular中存储当前用户上下文?

前端之家收集整理的这篇文章主要介绍了angularjs – 如何在Angular中存储当前用户上下文?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个AuthService,它登录一个用户,它返回一个用户json对象。我想做的是设置该对象,并且所有更改反映在应用程序(登录/注销状态),而不必刷新页面

我将如何使用AngularJS实现这一目标?

最简单的方法是使用服务。例如:
app.factory( 'AuthService',function() {
  var currentUser;

  return {
    login: function() { ... },logout: function() { ... },isLoggedIn: function() { ... },currentUser: function() { return currentUser; }
    ...
  };
});

然后,您可以在任何控制器中引用此。以下代码监视来自服务的值的更改(通过调用指定的函数),然后将更改的值同步到作用域。

app.controller( 'MainCtrl',function( $scope,AuthService ) {
  $scope.$watch( AuthService.isLoggedIn,function ( isLoggedIn ) {
    $scope.isLoggedIn = isLoggedIn;
    $scope.currentUser = AuthService.currentUser();
  });
});

然后,当然,你可以使用这些信息,但你认为合适;例如在指令中,在模板等。您可以重复此(定制您需要做什么)在菜单控制器等。当您更改服务状态时,所有将自动更新。

任何更具体的取决于你的实现。

希望这可以帮助!

猜你在找的Angularjs相关文章