我在视图中有一个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
答案 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();在更新范围变量
之后