- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在使用登录后不刷新的组件时遇到困难。
该组件是 navbar.component,其中包含指向我的页面/组件的链接。在它上面,有一个呈现 login.component 的“登录”链接,我可以在上面提供用户名和密码,然后单击登录按钮。 login.component 使用 user.service,它使用 login.component 提供的用户名和密码调用后端,存储接收到的 token 并重定向到“/”。
此时,navbar.component 上的“登录”链接应该被隐藏并显示“注销”链接,但是在我单击导航栏上的其他链接之一之前什么也没有发生。
2个链接如下:
<a [hidden]="userService.isLoggedIn" [routerLink]="['Login']">Login</a>
<a [hidden]="!userService.isLoggedIn" (click)="userService.logout();" href="javascript:void(0)">Logout</a>
我知道存储 token 并从 user.service 重定向不会触发更改检测,而且我的属性 userService.isLoggedIn 不是可观察的,所以我知道我遗漏了一些东西,但不确定方法是什么/应该是。
我曾尝试注入(inject) ApplicationRef 来调用 tick() 方法,希望这会触发更改检测,但失败了。
我应该让我的属性 userService.isLoggedIn 成为可观察对象吗?
最佳答案
export class UserService {
isLoggedIn:BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
}
@Component({
...
template: `
<a [hidden]="userService.isLoggedIn | async" [routerLink]="['Login']">Login</a>
<a [hidden]="!(userService.isLoggedIn | async)" (click)="userService.logout();" href="javascript:void(0)">Logout</a>
`
})
export class MyComponent {
constructor(private userService: UserService) {}
}
关于Angular2 ChangeDetection 还是 Observable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37024918/
我在使用登录后不刷新的组件时遇到困难。 该组件是 navbar.component,其中包含指向我的页面/组件的链接。在它上面,有一个呈现 login.component 的“登录”链接,我可以在上面
我想在使用 OnPush 变化检测策略上传之前预览多张图片。 我试试这个 https://stackblitz.com/edit/angular-mnltiv 当我添加 OnPush 时它停止工作,我
https://stackblitz.com/edit/angular-xpamld 问题:有人能帮我理解为什么我的原型(prototype)的 changeDetection: ChangeDete
我有一个有很多 child 的 Angular 2 组件。由于性能问题,我想检查 ChangeDetection 检查我的子组件的频率。所以我记录了我的一个子组件的 ngAfterViewChecke
我工作的组织中的一个私有(private)(但开源)Angular 包有一些代码如下所示: ngAfterViewInit(): void { setTimeout(() => { thi
考虑这个 plunker import {Component, OnInit, Input, OnChanges, DoCheck, ChangeDetectionStrategy, EventEmi
我有一个使用推送变化检测的 Angular 组件。组件有一个输入,在更新路由时由组件修改。如果我将输入分配给新的引用并对其进行修改,则模板中的值不会更新。我以为只要您分配了一个新对象,就会检测到更改,
技巧问题我还没有在文档中找到任何答案。 当 AppRef.tick() 被调用时(主要是通过 NgZone 补丁),一个变化检测周期被触发。它从树顶部的根组件到底部经过: 具有默认策略的每个组件 每个
在 Angular-2 项目中始终使用 是否合理? changeDetection: ChangeDetectionStrategy.OnPush 在组件的装饰器中?除非有明确的理由使用默认策略? 最
我是一名优秀的程序员,十分优秀!