Angular 如何将*ngIf指令中的多个条件与或`| |运算符4一起使用

Angular 如何将*ngIf指令中的多个条件与或`| |运算符4一起使用,angular,Angular,我有导航栏,当用户或管理员登录时,它必须更改元素。认证后,我需要更改一些元素。为此,我使用ngIf指令。 这是我的导航栏模板 <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <a class="navbar-brand" href="#">MEAN</a> <button class="navbar-toggler" type="button" data-toggle="coll

我有导航栏,当用户或管理员登录时,它必须更改元素。认证后,我需要更改一些元素。为此,我使用ngIf指令。 这是我的导航栏模板

<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  <a class="navbar-brand" href="#">MEAN</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarColor02" aria-controls="navbarColor02" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarColor02">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active" *ngIf="!auth.loggedIn() || !admin.loggedIn()">
        <a class="nav-link" routerLink = "/">Home</a>
      </li>
      <li class="nav-item" *ngIf="!auth.loggedIn() || !admin.loggedIn()">
        <a class="nav-link" routerLink = "/login">Login</a>
      </li>
      <li class="nav-item" *ngIf="!auth.loggedIn() || !admin.loggedIn()">
        <a class="nav-link" routerLink = "/register" >Register</a>
      </li>
      <li class="nav-item" *ngIf="auth.loggedIn()">
        <a class="nav-link" routerLink = "/dashboard">Dashboard</a>
      </li>
      <li class="nav-item" *ngIf="auth.loggedIn()">
        <a class="nav-link" routerLink = "/edit">Edit User</a>
      </li>
      <li class="nav-item" *ngIf="auth.loggedIn()">
        <a class="nav-link" (click)="logout()">Logout</a>
      </li>
      <li class="nav-item" *ngIf="admin.loggedIn()">
        <a class="nav-link" routerLink = "/adminPage">Edit Users</a>
      </li>
      <li class="nav-item" *ngIf="admin.loggedIn()">
        <a class="nav-link" (click)="logout()">Logout</a>
      </li>
    </ul>
  </div>
</nav>
这是来自管理服务的

loggedIn(){
  if(localStorage.getItem("adminToken")){
    return true;
  }else{
    return false;
  }
}
所以我需要在用户或管理员登录时隐藏一些元素(home、register、login)

  • 登录
  • 登记

  • 为此,我尝试在ngIf指令中使用or运算符,但这两种情况都不起作用。对于语言错误,我深表歉意,并感谢您的帮助

    如果要在用户以用户或管理员身份登录时隐藏
    li
    元素,您应该使用:

    *ngIf="!auth.loggedIn() && !admin.loggedIn()"
    


    使用您当前的代码

    *ngIf="!auth.loggedIn() || !admin.loggedIn()"
    

    只有当用户同时使用两种访问权限登录时,元素才会隐藏,这可能是不可能的。

    您是否将这两种服务注入到组件中?是的,我做了,但仍然不起作用。如果您做的一切都是正确的,那么应该这样做。请提供
    *ngIf="!auth.loggedIn() && !admin.loggedIn()"
    
    *ngIf="!(auth.loggedIn() || admin.loggedIn())"
    
    *ngIf="!auth.loggedIn() || !admin.loggedIn()"