【发布时间】:2021-06-20 20:23:05
【问题描述】:
早安,
尝试在 Angular 中使用 ngIF 时遇到问题,特别是当值必须为负时...
例如
我有这个 HTML 代码
<ul class="nav navbar-nav" *ngIf ="identity">
<li>
<a href="#">
<span class="glyphicon glyphicon-home"></span>
Inicio
</a>
</li>
<li>
<a href="#">
<span class="glyphicon glyphicon-th-list"></span>
Timeline
</a>
</li>
<li>
<a href="#">
<span class="glyphicon glyphicon-user"></span>
User
</a>
</li>
</ul>
“身份”在登录时存储用户数据和令牌的位置,它可以正常工作,如下图所示
但是,当我在下一个 div 中使用 ngIf = "!identity" 时,当没有用户登录时,右上角会显示不同的图标,没有任何反应
<ul class="nav navbar-nav navbar-right" *ngIf ="!identity">
<li>
<a [routerLink]="['/login']" [routerLinkActive]="['active']">
<span class="glyphicon glyphicon-log-in"></span>
Login
</a>
</li>
<li>
<a [routerLink]="['/register']" [routerLinkActive]="['active']">
<span class="glyphicon glyphicon-user"></span>
Register
</a>
</li>
</ul>
正如您在此处看到的,没有生成用户数据或令牌,但右上角的图标仍然没有显示
我已经尝试使用 <ng-template #anExample> 使用 ngIf else 语句并在其中添加第二个 div 并将其添加到 *ngIf ="identity; else anExample" 但它仍然不起作用。
提前感谢您的帮助
【问题讨论】:
-
没有用户登录时
identity的值是多少? -
@AlirezaAhmadi 拍摄!!!我忘了把它包括在我的问题中:这是函数 getIdentity(){ let identity = JSON.parse(localStorage.getItem('identity')||'{}');如果(身份!=“未定义”){ this.identity =身份; }else{ this.identity= null; } 返回 this.identity; }
-
低代表,所以我必须添加答案而不是评论,但肯定会检查你是否被某些东西伪造了。取下 ngIf 并确保它显示(css / 格式问题),如果它在开发工具元素中但没有显示你知道它是别的东西。
-
嗨@Wild Bill 好吧...有趣的事情..当我使用这个 *ngIf ="!identity == false" 它显示左右图标所以我在这里的逻辑上苦苦挣扎因为如果虚假陈述否认身份中不存在值,这意味着身份应该包含正确的东西?我在 Firefox 和 chrome 中都尝试过隐身,但问题仍然存在
-
您正在返回/解析“{}”,在这些情况下它应该是一个空对象,所以这里有一些检查:stackoverflow.com/questions/37111005/…
标签: html angular angular-ng-if