从方法读取AngularJS中的$Cookies

Reading $Cookies in AngularJS from a method

本文关键字:Cookies 中的 AngularJS 方法 读取      更新时间:2023-09-26

我是AngularJS的新手,我已经在一个示例中工作了几天https://github.com/cornflourblue/angular-registration-login-example.问题是,我试图读取我从服务器发送的cookie,在这个例子中,angular cookie库和(1.2)一样旧,所以我用最新的替换了它。当我试图访问run方法时,问题来了,我无法访问$cookies-var,我试图在不注入的情况下注入它。

实际上我不知道发生了什么。所以,如果你能帮我一点(&&||)向我推荐最新的、更好的例子,那就太棒了。

(函数(){"严格使用";var app=角度.module('app',['ngRoute','ngCookies']).config(config).run(run);配置$inject=['$routeProvider','$locationProvider'];函数配置($routeProvider,$locationProvider){$routeProvider.当('/'{controller:'家庭控制器',templateUrl:'AngularJS/home/home.view.html',控制器A:'vm'}).当('/login'{controller:"登录控制器",templateUrl:'AngularJS/login/login.view.html',控制器A:'vm'}).当('/register'{controller:"RegisterController",templateUrl:'AngularJS/register/register.view.html',控制器A:'vm'}).否则({redirectTo:'AngularJS/login'});}跑步$inject=["$rootScope","$location","$http"];函数运行($rootScope、$location、$http、$cookie){//我想在这里使用$cookies,但我似乎不可能。//在页面刷新后保持用户登录$rootScope.globals=$cookies.get('globals')||{};if($rootScope.globals.currentUser){$http.defaults.headers.common[授权]="基本"+$rootScope.globals.currentUser.authdata;//jshint忽略:行}$rootScope$on('$locationChangeStart',function(event,next,current){//如果未登录并试图访问受限页面,则重定向到登录页面var restrictedPage=$.inArray($location.path(),['/login','/register'])===-1;var loggedIn=$rootScope.globals.currentUser;if(restrictedPage&&!loggedIn){$location.path('/login');}});}})()

很抱歉我的英语能力不好。。。(不是我的母语):·)

非常感谢。

您忘记将$cookies添加到run.$inject数组中。

此外,定义.$inject数组是可选的,只要您在组件函数的参数中使用标准依赖项名称即可。在这里,删除.$inject定义应该会给您留下一个更轻松、功能更强大的应用程序。