如何从Angular 9中的组件访问服务类中定义的变量



我正在制作一个聊天应用程序,其中登录后的服务类我将本地变量设置为true。但当我试图从另一个组件访问该变量时,它会给我一个错误的初始值。那么该怎么做呢?

身份验证服务.ts

@Injectable({
providedIn: 'root'
})
export class AuthService {

url:string = 'http://localhost:3000/api/'

public isAuth: boolean = false
login(user:User){
const api = this.url + 'signin'
return this.http.post<any>(api,user,httpOptions).subscribe(response => {
if(response.token){

localStorage.setItem('token',response.token)
isAuth = true
this.router.navigate(['chat'])
}

})
}  
}

聊天室组件.ts

import {AuthService} from '../services/auth.service'
@Component({
selector: 'app-chatroom',
templateUrl: './chatroom.component.html',
styleUrls: ['./chatroom.component.css']
})
export class ChatroomComponent implements OnInit,AfterViewInit{
constructor(private auth:AuthService) { }

ngOnInit(): void {
console.log(this.auth.isAuth) //is showing me false despite logging in and setting it to true
}
}

将值设置为本地存储通道后

isAuth = true

this.isAuth = true

相关内容

  • 没有找到相关文章

最新更新