首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角度变化页依赖于AuthService

角度变化页依赖于AuthService
EN

Stack Overflow用户
提问于 2022-09-01 20:16:36
回答 1查看 32关注 0票数 0

我有带有AuthService属性的isAuth和带有导航栏的布局,如果用户获得授权,我希望更改按钮。

肚脐部分

代码语言:javascript
复制
<div *ngIf="!this.auth.isAuth; then authorizedBlock else unauthorizedBlock"></div>
    <ng-template #unauthorizedBlock>
    <ul class="navbar-nav ms-2 ms-lg-auto">
      <li class="nav-item">
        <a class="nav-link btn btn-outline-primary" routerLinkActive="active" routerLink='login'>Login</a>
      </li>
      <li class="nav-item">
        <a class="nav-link btn btn-outline-secondary" routerLinkActive="active" routerLink='registration'>Registration</a>
      </li>
    </ul>
    </ng-template>
    <ng-template #authorizedBlock>
      <ul class="navbar-nav ms-2 ms-lg-auto">
        <li class="nav-item">
          <a class="nav-link btn btn-outline-primary" routerLinkActive="active" routerLink='profile'>Profile</a>
        </li>
        <li class="nav-item">
          <a class="nav-link btn btn-outline-secondary" (click)="logout()">Logout</a>
        </li>
      </ul>
    </ng-template>

布局的一部分,我试着得到

代码语言:javascript
复制
constructor(private auth:AuthService, private  router:Router) { }
  ngOnInit(): void {
    ?????
  }

我需要改变什么才能让它起作用?

this.auth.isAuth引发属性为私有的错误

如果我使本地值等于this.auth.isAuth,则在我登录时它不会改变

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-01 20:58:30

您可以通过拥有一个get函数来实现这一点。

.ts文件中

代码语言:javascript
复制
public get isAuth(): boolean {
   return this.auth.isAuth;
}

.html文件中:重构的一点

代码语言:javascript
复制
<ng-container *ngIf="isAuth; else unauthorizedBlock">
    <ul class="navbar-nav ms-2 ms-lg-auto">
      <li class="nav-item">
        <a class="nav-link btn btn-outline-primary" routerLinkActive="active" routerLink='login'>Login</a>
      </li>
      <li class="nav-item">
        <a class="nav-link btn btn-outline-secondary" routerLinkActive="active" routerLink='registration'>Registration</a>
      </li>
    </ul>
</ng-container>
  
    <ng-template #authorizedBlock>
      <ul class="navbar-nav ms-2 ms-lg-auto">
        <li class="nav-item">
          <a class="nav-link btn btn-outline-primary" routerLinkActive="active" routerLink='profile'>Profile</a>
        </li>
        <li class="nav-item">
          <a class="nav-link btn btn-outline-secondary" (click)="logout()">Logout</a>
        </li>
      </ul>
    </ng-template>

另外,我们不需要在this文件中使用.html关键字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73575011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档