我正在尝试使用延迟加载来加载模块。 我使用Angular5.x,Angular material2.x和firebase。
当前行为
scene module
和scene module
不起作用。
即使加载/auth
,也不会显示场景组件。
预期行为
两个路由模块都应该路由右侧组件。
加载app-routing.module.ts
后,可以看到我在//app-routing.module.ts
const routes: Routes = [
{path: '', redirectTo: '/auth', pathMatch: 'full'},
{path: 'auth', component: AuthComponent},
{path: 'scene', loadChildren: './scene/scene.module#SceneModule'}
];
中声明的场景组件。
解释
如果网址为空,则重定向到auth.component.ts
,以便用户登录。
所以,我在export class AuthComponent {
constructor(private router: Router, public auth: AuthService, private relativeRouter: ActivatedRoute) {
this.tokenCheck();
}
signIn() {
this.auth.googleLogin().then(
() => location.reload()
);
}
tokenCheck() {
const token = localStorage.getItem('userToken');
if (token) {
console.log('here');
this.router.navigate(['../scene'], {
relativeTo: this.relativeRouter
});
}
}
}
中设置了这样的路由器。
@NgModule({
imports: [ CommonModule ],
declarations: [
SceneComponent,
HeaderComponent,
TabComponent
],
exports: [
SceneComponent,
HeaderComponent,
TabComponent
]
})
用户登录后,imagepng($this->image);
检查用户是否有令牌。
如果用户有令牌,则路由到场景组件。
这是我的代码
auth.component.ts
void
scene.module.ts
ClassMapper