在注销会话时查看不刷新

时间:2013-10-23 10:45:35

标签: angularjs

我在视图中有一个navbar ul,如果用户没有登录则不应该显示。为此我使用的是ng-show =“session.exists()”。单击退出按钮(也在导航栏视图中)时,它会调用:

$scope.logout = function () {
  var success = function () {
    $state.transitionTo('login');
  };
  console.log($scope.session.exists());
  Auth.logout().then(success);
  console.log($scope.session.exists());
};

从我的日志语句中我可以看到,看到会话被破坏了,但我想隐藏的元素仍然可见。如果我刷新页面,则隐藏元素。我在这里错过了一招吗?我是棱角分明的新人并继承了一个项目,所以任何建议都非常感谢!

C

2 个答案:

答案 0 :(得分:0)

当您销毁用户会话时,可能不会在ngShow上触发您的函数。

我建议您使用变量来控制它,并在您的注销功能上设置它。

在您的控制器中:

$scope.loggedIn = true;
$scope.logout = function() {
    $scope.loggedIn = false;
}

在你看来:

<div data-ng-show="loggedIn">Show Me!</div>

答案 1 :(得分:0)

我认为您正在尝试更新范围变量,该变量负责从异步函数调用中显示您的导航栏URL,这可能是http调用成功的一部分。 所以尝试添加$ scope。$ digest();在更新范围变量

之后