【问题标题】:Cookies Not Refreshing Dynamically - AngularJSCookie 没有动态刷新 - AngularJS
【发布时间】:2016-07-26 17:25:47
【问题描述】:

我已经设置了这样的cookie,

$cookies.userName = $scope.userName; ($scope.username is a variable)
$scope.userName = $cookies.userName;

在 HTML 中,

{{userName}}

cookie 值正在正确显示。问题是,假设如果使用用户名登录 - aaa,cookie 将显示 aaa.

aaa 注销后,当用户bbb 登录时,cookie 值仍然是aaa,但是当我刷新页面时,cookie 值显示为bbb .但这只会刷新,在正常登录时会显示之前的 cookie 值。

谁能建议我解决这个问题的方法?

【问题讨论】:

  • 注销时清除 cookie。并在登录时重新创建 cookie,以防万一需要根据授权访问任何页面。读取 cookie 并基于该提供。

标签: javascript angularjs cookies


【解决方案1】:

然后就可以使用了

删除 $cookies['userName'];

希望这能回答您的问题,这取决于不同的版本。

【讨论】:

  • 我试过 $cookies.remove('userName');它说 - $cookies.remove 不是一个函数。这是 cookie 网址 - //ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.1/angular-cookies.min.js
  • cookie 被删除,但变量 username 仍然显示旧的 cookie 值,刷新时显示新的值.. 我尝试制作 $scope.username="null",但是登录时cookie 值也为空,刷新获取 cookie 值...
  • 在更新用户名的地方使用 $timeout,它将调用 $scope.$apply
【解决方案2】:

在您的登录功能(一旦您点击登录)放置$rootScope.login= 1; 并在您设置新的cookie 位置后在您的登录屏幕控制器上-

    if ($rootScope.loin=== 1){
        window.location.reload();
     }

在上面的代码之后,从 cookie 中设置你的范围。

【讨论】:

    猜你喜欢
    • 2019-04-03
    • 2015-07-08
    • 2016-01-12
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多