angular-uiroute错误,因为$ cookieStore.get是unfind

时间:2017-12-09 09:09:49

标签: angularjs angular-ui-router session-cookies

这里我试图在$ roortScope中获取我的存储cookie值为什么我得到错误为.get of undefind $cookieStore.get('mycookie');

angular.module('MyApp', ['ui.router', 'ui.bootstrap', 'ngCookies']).controller('HomeCtrl', function ($scope, $cookies, $state) {
 .run(function ($rootScope) {
        $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams, options, $scope,$cookieStore) {
            var Getcookies = $cookieStore.get('mycookie');

            if (toState.module == "Private" && !Getcookies.lenth=='undefind') 
  {
            }

2 个答案:

答案 0 :(得分:1)

我认为你的问题在你的控制器中你有$ cookies

.controller('HomeCtrl', function ($scope, $cookies, $state)

但是在你的函数中你使用的是$ cookieStore,这就是你的$ cookieStore未定义的原因

function (event, toState, toParams, fromState, fromParams, options, $scope,$cookieStore)

如果您想使用$ cookieStore,您应该使用$ cookieStore更改控制器中的$ cookies,但请记住,自1.4版以来不推荐使用$ cookieStore,如果您使用的是更新版本,则应使用$ cookies 。

答案 1 :(得分:0)

$cookies服务需要作为.run构造函数中的参数注入:

̶.̶r̶u̶n̶(̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶(̶$̶r̶o̶o̶t̶S̶c̶o̶p̶e̶)̶ ̶{̶
.run(function ($rootScope, $cookies) {

    $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams, options, $scope,$cookieStore) {
        var Getcookies = $cookies.get('mycookie');

        //...

    });
})