我在使用登录时不刷新的组件时遇到问题。
该组件是 navbar.component ,其中包含指向我的页面/组件的链接。在它上面,有一个“登录”链接呈现 login.component,我可以在上面提供用户名和密码,然后单击登录按钮。login.component 使用 user.service,它使用 login.component 提供的用户名和密码调用后端,存储接收到的令牌并重定向到'/'。
此时,应该隐藏 navbar.component 上的“登录”链接并显示“注销”链接,但是在我单击导航栏上的其他链接之一之前什么都没有发生。
2个链接如下:
<a [hidden]="userService.isLoggedIn" [routerLink]="['Login']">Login</a>
<a [hidden]="!userService.isLoggedIn" (click)="userService.logout();" href="javascript:void(0)">Logout</a>
我了解存储令牌并从 user.service 重定向不会触发更改检测,并且我的属性 userService.isLoggedIn 不是可观察的,所以我知道我遗漏了一些东西,但不确定该方法是/应该是什么.
我尝试注入 ApplicationRef 来调用 tick() 方法,希望这会触发更改检测,但失败了。
我应该让我的财产 userService.isLoggedIn 成为可观察的吗?