【问题标题】:cookies set in one controller are not accessed in other controller在一个控制器中设置的 cookie 不会在其他控制器中访问
【发布时间】:2017-06-12 22:35:01
【问题描述】:

我已经在一个控制器中设置了 cookie,并想检查它是否在另一个控制器中设置。 我设置 cookie 数据的控制器是

app.controller('CtrlVehicle', function ($scope, $http, $rootScope, $cookieStore, $location, $timeout) {
$scope.viewed_status = $.cookie('view_status');

alert($scope.viewed_status);

    $scope.skip_details = $.cookie('skip_details');

    $(".lead_form").submit(function ()
    {
 $.cookie('view_status', "viewed");
  });
 $scope.$on('$routeUpdate', function () {
//        alert()
    });

    var my_array = [];

    //alert(JSON.stringify(my_array));

    if ($cookieStore.get('saved'))
    {
        //alert();
        my_array = $cookieStore.get('saved');
    }

    $new = [];

    if (my_array.length >= 1)
    {



        for (var i = 0; i < my_array.length; i++)
        {

            //delete my_array[i];
            //alert( JSON.stringify(my_array[i][0].vin)) ;
            if ((my_array[i].vin))
            {
                $new.push(my_array[i].vin);

            }


        }

    }



    $rootScope.saved_array = $new;

});

我想在调用 CtrlUsed 控制器时提醒这些数据

这是另一个控制器。

app.controller('CtrlUsed', function ($scope, $http, $rootScope, $cookieStore, $location, $timeout) {

    $scope.viewed_status = $.cookie('view_status');

   alert($scope.viewed_status);

    });

当我尝试在 CtrlVehicle 中提醒其设置并显示“已查看”但当我尝试使用 CtrlUsed 时显示“未定义”

【问题讨论】:

  • 更好的方法是使用服务。从服务中设置 cookie,并且可以使用依赖注入获得任何你想要的地方。

标签: javascript jquery angularjs cookies


【解决方案1】:

您从未在问题中给出的上述代码中设置 cookie。

而不是使用$cookieStore 尝试使用$cookies 并设置/获取它,如下所示:-

$cookies.put('user', ValueOfUser);
$cookies.get('user');

同时获取与您设置的名称相同的 cookie...

【讨论】:

  • $.cookie('view_status', "viewed");我在上面的代码@Rakeschand的这一行中设置了cookie
  • 所以你是通过 'view_status' 名称设置并通过 'saved' 开始的??
猜你喜欢
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多