角 5 错误。我无法从浏览器获取有关页面刷新的用户详细信息。我正在尝试使用 APP_INITIALIZER 加载数据但低于错误 -
compiler.js:19390 未捕获错误:提供程序解析错误:无法实例化循环依赖!ApplicationRef ("[ERROR ->]"): 在 NgModule AppModule 中的 ./AppModule@-1:-1
下面是我的配置 app.module.ts
export function initUserFactory(userService: UserService) {
return () => { userService.initUser()};
}
let INITIAL_PROVIDERS = [ {provide: HTTP_INTERCEPTORS,useClass: RequestAuthInterceptor, multi: true },
UserService,
MessageService,
AuthGuard,
AdminAuthGuard,
NotificationService,
NgxPermissionsService,
{
provide: APP_INITIALIZER,
useFactory: initUserFactory,
deps: [UserService],
multi: true
},
AuthService,
];
@NgModule({ imports:[//required imports],declarations: INITIAL_COMPONENTS,
providers: INITIAL_PROVIDERS,
bootstrap: [AppComponent]
})
用户服务
initUser() {
const promise = this.http.get<APIResponse>(this.apiurl+ServiceConstants.REFRESH_TOKEN).toPromise()
.then(response => {
if(response.data.result != null && response.data.result.token != null ){
//refresh toekn
let accessToken = response.data.result.token;
localStorage.setItem('auth_token', accessToken);
return this.getUserInfo().toPromise()
.then(user => {
this.currentUser = user;
});
}
})
.catch(() => null);
return promise;
}
或者在呈现视图之前我可以解决登录用户的任何其他建议!因为用户没有被解析,所以 auth guard 在页面刷新时将其重定向到登录页面。任何帮助表示赞赏!提前致谢