javascript - 延迟加载模块基础模板

标签 javascript angular

在 app.module.ts 中,我加载了 2 个这样的惰性模块

const appRoutes: Routes = [
    { path: 'anonym', loadChildren: './anonym/anonym.module#AnonymModule' },
    { path: 'user', loadChildren: './user/user.module#UserModule', canActivate: [AuthGuard] }
];

在app.component.html中我可以编写一些基本的html。我的问题 - 有什么方法可以为我的 UserModule 提供基本 html 吗? 我尝试创建 user.component.ts 并像在 app.module.ts 中一样加载它

import { UserComponent } from './user.component';
@NgModule({
    declarations: [UserComponent],
    bootstrap: [UserComponent]
});

但它没有向我显示 user.component.html

最佳答案

在您的用户模块中定义一个带有空路径的基本路由,然后将子路径定义为子路径。

const ROUTES: Routes = [
    {
        path: '',
        component: UsersComponent,
        children: [
            {
                path: '',
                pathMatch: 'full',
                redirectTo: 'login'
            }, {
                path: 'login',
                component: LoginComponent
            }, {
                path: 'logout',
                component: LogoutComponent
            }
        ]
    }
];

UsersComponent现在将用作基本组件,如果您导航到 /users它将重定向到 /users/login路径。

确保您的 UsersComponent有一个模板 <router-outlet></router-outlet>所以 child 的路线。

@NgModule({
    imports: [
        RouterModule.forChild(ROUTES)
    ],
    exports: [
        RouterModule
    ]
})
export class UsersModule {

}

关于javascript - 延迟加载模块基础模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44889022/

相关文章:

javascript - 获取鼠标在父div javascript中单击的位置

javascript - 使用 Material Angular 和 Leaflet 切换 sidenav 时调整 sidenav-content 的大小

angular - 将最新值与初始值结合起来

angular - this._ngZone.onMicrotaskEmpty.first() - 代码解释

angular - 引用错误 : Rx is not defined

angular - 如何关闭 Angular 6 ng 测试的源映射?

javascript - 网络场场景中的 SignalR 连接亲和性

javascript - IIS 8 并重定向特定页面

javascript - 单击“保存”按钮时如何阻止我的网格?

javascript - “Alt”按键事件在 Firefox 上不起作用