You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Angular 6中根据条件显示/隐藏li标签

实现Angular中根据角色控制列表项的显示/隐藏

很简单,你只需要利用Angular的*ngIf指令,就能轻松实现根据showEmailToggle变量的值来控制第一个<li>标签的显示状态。

修改后的完整HTML代码

<ul class="nav navbar-nav navbar-right">
  <!-- 通过*ngIf绑定变量控制该列表项的显示/隐藏 -->
  <li *ngIf="showEmailToggle">
    <a style="display: flex">
      <span class="pr-10">Email alerts</span>
      <ui-switch labelOn="On" labelOff="Off" switchColor="#f1f1f1" size="small" [checked]="user.EmailSubscription" (change)="onEmailSwitchChange($event)"></ui-switch>
    </a>
  </li>
  <li><a href="./assets/FAQs.pdf" target="_blank">FAQ</a></li>
  <li><a>Welcome, {{currentUser}}</a></li>
  <li>
    <button type="button" style="padding-top: 14px;" class="btn btn-link" (click)="openModal(LogoutConfirm)" > 
      Logout 
    </button>
  </li>
</ul>

组件逻辑确认

你组件里的逻辑是完全可行的,它会根据当前用户的角色动态设置showEmailToggle的值,建议把这段逻辑放在组件的生命周期钩子(比如ngOnInit)里执行,确保页面初始化时就能完成判断:

showEmailToggle: boolean;

ngOnInit(): void {
  if(sessionStorage.getItem("Role") === "Admin") {
    this.showEmailToggle = false;
  } else {
    this.showEmailToggle = true;
  }
}

这样设置后,当用户角色为Admin时,showEmailToggle会被设为false,第一个列表项就会自动隐藏;非Admin角色时,变量为true,邮箱提醒的开关项就会正常显示,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Vishal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:59:43