Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 防止用户在有效登录无效之前看到导航栏_Angular - Fatal编程技术网

Angular 防止用户在有效登录无效之前看到导航栏

Angular 防止用户在有效登录无效之前看到导航栏,angular,Angular,我是编程和网络新手 这是我的app.component.html: 当我未登录时,导航栏显示在我的app.component.ts中。我已经定义了逻辑: 令牌:字符串; 记录:布尔值=假; 恩戈尼尼特(){ if(localStorage.getItem('token')){ this.logged=true; }否则{ this.logged=false; } } 注销(){ localStorage.removietem(“令牌”); this.logged=false; }

我是编程和网络新手

这是我的app.component.html:


当我未登录时,导航栏显示在我的app.component.ts中。我已经定义了逻辑:

令牌:字符串;
记录:布尔值=假;
恩戈尼尼特(){
if(localStorage.getItem('token')){
this.logged=true;
}否则{
this.logged=false;
}
}
注销(){
localStorage.removietem(“令牌”);
this.logged=false;
}

如果有人告诉我逻辑的哪一部分是错误的,我将不胜感激。

localStorage.getItem和.removietem背后的代码和逻辑将非常有助于清楚地回答这个问题

但就代码片段而言,“logged”变量背后的逻辑和用法似乎非常简单和正确。但是localStorage.removeItem和localStorage.getItem似乎是问题所在。我这么说是因为,如果我从ts文件中删除这些调用,一切都会按预期进行

  • 可能localStorage.removeItem运行时出错,Logout()函数中的下一行即this.logged=false未被执行
  • 或者,localStorage.getItem()为删除的令牌返回true,因此,当重新打开应用程序时,即使令牌错误或不存在,也会显示导航栏

  • 如果不知道localStorage函数在做什么,就很难准确地进行调试。

    如果(localStorage.getItem('token').length>0)您的代码对我来说很好,如果您可以在codesandbox或类似工具上重新创建,我很乐意仔细查看,但从这里您已经正确定义了logged,当它不存在时,它应该返回null值,因此将logged标记为false,并且不显示模板。我猜代码中肯定还有其他地方发生了什么事。