Let's say I have the following setting:
employee -------+ employee.module.ts | employee.routing.ts + employee.component.ts | sales ----------+ sales.module.ts | sales.routing.ts + sales.component.ts app.module.ts app.routing.ts app.component.ts
and I would like my routes to look like
employee/14/sales
So, I continue and define these routing declarations:
app.routing.ts
... import { AppComponent } from './app.component'; const appRoutes: Routes = [ { path: '', component: AppComponent } ]; export const appRoutingProviders: any[] = []; export const routing = RouterModule.forRoot(appRoutes, { useHash: true });
employee.routing.ts
... import { EmployeeComponent } from './employee.component'; export const employeeRoutes: Routes = [ { path: 'employee/:id', component: EmployeeComponent } ]; export const employeeRouting = RouterModule.forChild(employeeRoutes);
sales.routing.ts
... import { SalesComponent } from './sales.component'; export const salesRoutes: Routes = [ { path: 'sales', component: SalesComponent } ]; export const salesRouting = RouterModule.forChild(salesRoutes);
while my modules take this form:
app.module.ts
import { EmployeeModule } from './employee/employee.module'; import { AppComponent } from './app.component'; import { routing, appRoutingProviders } from './app.routing'; @NgModule({ imports: [ ... EmployeeModule, routing ], declarations: [ AppComponent ], bootstrap: [ AppComponent ], providers: [ appRoutingProviders ] })
employee.module.ts
import { SalesModule } from '../sales/sales.module'; import { EmployeeComponent } from './employee.component'; import { employeeRouting } from './employee.routing'; @NgModule({ imports: [ SalesModule, employeeRouting ], declarations: [ EmployeeComponent ] })
sales.module.ts
import { SalesComponent } from './sales.component'; import { salesRouting } from './sales.routing'; @NgModule({ imports: [ salesRouting ], declarations: [ SalesComponent ] }) export class SalesModule {}
Now i can switch to
employee/14
but if I try to go to
employee/14/sales
Greetings
Error: cannot match any routes: 'employee / 14 / sales'
I can, however, enter
sales
and this works until it should work, so somehow all the routes connect directly to / instead of building on each other.
What am I missing?
EDIT plnkr showing the problem can be found here .