gpt4 book ai didi

angularjs - 如何在 AngularJS 中存储当前用户上下文?

转载 作者:行者123 更新时间:2023-12-03 04:59:34 25 4
gpt4 key购买 nike

我有一个 AuthService,它登录用户,它返回一个用户 json 对象。我想要做的是设置该对象并让所有更改反射(reflect)在应用程序中(登录/注销状态),而无需刷新页面。

我如何使用 AngularJS 来完成这个任务?

最佳答案

实现此目的的最简单方法是使用服务。例如:

app.factory( 'AuthService', function() {
var currentUser;

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

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

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

然后,当然,您可以按照您认为合适的方式使用该信息;例如在指令、模板等中。您可以在菜单 Controller 等中重复此操作(根据您需要执行的操作进行自定义)。当您更改服务上的状态时,它将自动更新。

任何更具体的内容取决于您的实现。

关于angularjs - 如何在 AngularJS 中存储当前用户上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14206492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com