J'ai la structure de module suivante:
1- RootModule
Avec routage comme suit:
const routes: Routes = [
{ path: '', redirectTo: 'app', pathMatch: 'full' }
];
2- AppModule
Avec routage comme suit:
const routes: Routes = [
{
path: 'app',
component: AppComponent,
children: [
{
path: '',
redirectTo: 'index',
pathMatch: 'full'
}
]
}
];
De plus, AppModule
importe MainModule
qui n'est qu'un module de routage et est configuré comme suit:
const routes: Routes = [
{
path: '',
component: MainComponent,
children: [
{
path: 'index',
loadChildren: '.\/..\/modules\/index\/index.module#IndexModule'
},
{
path: '',
redirectTo: 'index',
pathMatch: 'full'
}
]
}
];
Maintenant, RootComponent
est le point de départ:
@Component({
selector: "app-root",
template: "<router-outlet></router-outlet>"
})
export class RootComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
La AppComponent
est définie comme:
<router-outlet></router-outlet>
<app-quick-sidebar></app-quick-sidebar>
Enfin, MainComponent
est défini comme suit:
<app-header-nav></app-header-nav>
<router-outlet></router-outlet>
<app-footer></app-footer>
L’essentiel est d’acheminer l’application vers le composant/index de manière à passer par RooComponent
-> AppComponent
-> MainComponent
-> IndexComponent
Jusqu'ici, avec les itinéraires ci-dessus, AppComponent
est ignoré!
Une idée?
Merci
Avec votre configuration d'itinéraires actuels, MainComponent
n'est pas configuré dans le tableau d'enfants du chemin AppComponent
. Alors, pourquoi apparaîtrait-il dans son modèle?
Pour le moment, votre configuration de routage fonctionnera comme ceci:
/app
vous mènera à AppComponent
/index
, vous obtiendrez la IndexComponent
.Pour obtenir le comportement souhaité de RooComponent
-> AppComponent
-> MainComponent
-> IndexComponent
, la configuration de vos itinéraires doit ressembler à ceci:
const routes: Routes = [{
path: '',
component: AppComponent,
children: [{
path: '',
component: MainComponent,
children: [{
path: '', redirectTo: 'index', pathMatch: 'full'
}, {
path: 'index',
loadChildren: '.\/..\/modules\/index\/index.module#IndexModule'
}]
}]
}];
Merci pour la réponse. Votre solution a résolu le problème initial. Mais maintenant je vois un autre problème. Les fichiers de routage mis à jour sont les suivants:
1- root-routing.module.ts
const routes: Routes = [
{
path: '',
redirectTo: 'index',
pathMatch: 'full'
}
];
2- app-routign.module.ts
const routes: Routes = [
{
path: '',
component: AppComponent,
children: [
{
path: '',
component: Layout.HeaderFooterMainComponent,
children: [
{
path: '',
redirectTo: 'index',
pathMatch: 'full'
},
{
path: 'index',
loadChildren: '.\/modules\/index\/index.module#IndexModule'
},
{
path: '404',
loadChildren: '.\/modules\/not-found\/not-found.module#NotFoundModule'
},
{
path: '**',
redirectTo: '404',
pathMatch: 'full'
}
]
}
]
}];
3- index.module.ts
const routes: Routes = [
{
path: '',
component: Layout.AsideLeftDefaultComponent,
children: [
{
path: '',
component: IndexComponent
}
]
}];
Maintenant, si j'essaie d'accéder à une URL /index/d
qui n'existe nulle part, je suis redirigé vers la page/404. Toutefois, le styles.bundle.css
est en cours de chargement depuis /index/styles...
au lieu de /styles.bundle.css
. index
est maintenant considéré comme un sous-dossier! Pourquoi est-ce que ça se passe?