Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angular2 ChangeDetection还是Observable?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在登录时无法刷新的组件遇到困难.

该组件是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()方法,希望这会触发更改检测,但是失败了.

@R_895_10675@我的属性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?全部内容,希望文章能够帮你解决Angular2 ChangeDetection还是Observable?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。