我正在尝试为我的应用程序创建路由。我在其中放入了主视图模块:
import { Route } from '@angular/router';
import { MainViewComponent } from './main-view.component';
export const MAINVIEW_ROUTE: Route = {
path: 'home',
component: MainViewComponent,
data: {
authorities: [],
pageTitle: 'home.title'
}
};
我也在main-view.module中使用forChild方法
imports: [CommonModule, RouterModule.forChild([MAINVIEW_ROUTE]), ChartsModule, MagDynoSharedModule, MatGridListModule]
在我的应用程序路由调制中,我有这个:
RouterModule.forRoot(
[
{ path: '', children: [
{ path: '', redirectTo: 'home', pathMatch: 'full'},
应用程序未在此路由器插座中显示main-view.component。在不使用重定向的情况下,将加载另一个模块。
答案 0 :(得分:0)
如果您已经在AppModule中导入MainViewModule, 我认为您应该以这种方式配置AppModuleRouting:
RouterModule.forRoot(
[
{ path: '', redirectTo: 'home', pathMatch: 'full'}
];
然后MainViewRoutingModule应该是:
RouterModule.forChild([
{ path: 'home', component: MainViewComponent }
])
另一方面,如果要进行延迟加载:https://angular.io/guide/lazy-loading-ngmodules
您应该这样做:
AppModuleRouting
RouterModule.forRoot(
[
{ path: '', redirectTo: 'home', pathMatch: 'full'},
{ loadChildren: () => import('./modules/main-view.module').then(mod => mod.MainViewModule)}
];
然后在MainViewModuleRouting中应该是:
RouterModule.forChild([
{ path: '', children: [
{ path: 'home', component: MainViewComponent }
]
]);
答案 1 :(得分:0)
事实证明,由于Jhipster,我遇到了一些问题。 在上一个版本中,我将app-routing-module更改为:
$result = $mysqli->query("SHOW COLUMNS FROM tablename LIKE 'keyword");
$exists = (mysqli_num_rows($result))?TRUE:FALSE;
而且效果很好。 但是我不确定更好的约定是否像这样(带孩子)使用它:
RouterModule.forRoot([
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', children: MAINVIEW_ROUTE },
{ path: 'setting', children: SETTING_ROUTE },
{ path: 'history', children: HISTORY_ROUTE },
{ path: 'admin', loadChildren: './admin/admin.module#MagDynoAdminModule' },
...ACCOUNT_ROUTES,
...LAYOUT_ROUTES,
],
{ enableTracing: DEBUG_INFO_ENABLED }
)