【发布时间】:2021-05-04 15:11:39
【问题描述】:
我正在尝试实现自动登录系统,我将登录数据保存到 localStorage,以便在刷新时从本地存储中获取数据 当我从本地存储中获取数据时,我使用 Subject 来发出该数据,以便在标题组件中订阅数据并在刷新时维护应用程序状态
现在刷新我的自动登录功能正在调用,但订阅没有在标题组件中调用
验证服务代码
autoLogin(){
const userdata: {
email:string;
id: string;
_token:string;
_tokenExpairDate:Date;
}=JSON.parse(localStorage.getItem('userData'));
if(!userdata){
return;
}
console.log("Auto Login Call");
const loadedData=new User
(
userdata.email,
userdata.id,
userdata._token,
new Date
(
userdata._tokenExpairDate
)
);
if(loadedData.token){
console.log(loadedData);
console.log("data Emmit");
this.user.next(loadedData);
}
else{
console.log("data Not Emmit");
}
}
头组件代码
ngOnInit(){
this.userSub=this.auth.user.subscribe(user=>{
console.log("Subscription Call");
this.isLogin=!user? false:true;
})
}
【问题讨论】:
-
您能否提供代码,以便在模块中“注册”您的 AuthService
-
@Injectable({ providedIn: 'root' }) 导出类 AuthServiceService {
-
你也把它放在
providers部分的任何地方吗? -
现在不,但我也在 app.modules 中尝试过
-
console.log("Subscription Call");正在执行吗?
标签: angular observable behaviorsubject