我有一个与依赖注入有关的问题。我是 Angular 的新手,问题是,我试图将登录的用户数据存储在服务中,并在从 API 获取登录用户信息的应用程序组件中调用此服务。
当我尝试从/dashboard/*
任何后代链接访问该服务时,该服务的数据可用。但是当我尝试从/dashboard
I got访问这些数据时undefined
。
我观察到的问题是,在 URL 发生变化之前,来自服务的数据不会被加载。当有导航时,数据会被加载。
该服务已在app.module
.
app.module
-
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { UserProfileService } from './services/profile/user-profile.service';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
DashboardModule,
SharedModule,
BrowserAnimationsModule,
MobileScreenModule,
AuthModule,
JwtModule
],
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },
UserProfileService
],
bootstrap: [AppComponent]
})
export class AppModule { }
app-routing.module
-
const routes: Routes = [
// {path: 'auth' , redirectTo:'/auth/login'},
{
path: 'auth',
loadChildren: ()=> import('./auth/auth.module').then(child => child.AuthModule),
canActivate: [PreAuthGuardService]
},
{
path: 'dashboard',
component: DashboardComponent,
canActivate: [PostAuthGuardService],
loadChildren: () => import('./dashboard/dashboard.module').then((childrens) => childrens.DashboardModule)
},
{ path: '**', redirectTo: '/auth/login' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }