Angular 17 主体行为

问题描述 投票:0回答:1

在 Angular 17 中,我在登录服务中设置了一个可观察对象。但是,当尝试在 app.component.ts 中使用此可观察量时,它最初不会被调用。重新加载页面后工作正常。如何解决?

我希望能够在用户登录后立即获取我在 app.component. 中创建的可观察值的值。

angular frontend angular-ui-router developer-tools
1个回答
0
投票

在 LoginService 中创建BehaviorSubject 和函数来发出值:

  private loggedInSubject = new BehaviorSubject<boolean>(false);
  public isLoggedIn$ = this.loggedInSubject.asObservable();


  login(){
    // Logic to perform login
    // Assuming you set loggedIn to true after successful login
     this.loggedInSubject.next(true);
   }

在AppComponent中: 导出类 AppComponent 实现 OnInit { 已登录:布尔值;

  constructor(private loginService: LoginService) {}

  ngOnInit() {
    this.loginService.isLoggedIn$.subscribe((isLoggedIn) => {
      this.isLoggedIn = isLoggedIn;
      // Do whatever you need with isLoggedIn
    });
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.