Angular 2 RC5 routing issues for kids

I am trying to work with child routing and this is the error I get:

EXCEPTION: Error: Uncaught (in promise): Error: Cannot match any routes: 'settings'

Here is my app.modules.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import { routeComponents, routing, appRoutingProviders } from './app.routes';


@NgModule({
    declarations: [
        AppComponent,
        routeComponents
    ],
    imports: [
        BrowserModule,
        CommonModule,
        FormsModule,
        routing
    ],
    providers: [ appRoutingProviders ],
    entryComponents: [AppComponent],
    bootstrap: [AppComponent]
})
export class AppModule {

}

Here is my app.routes.ts

import { Routes, RouterModule } from '@angular/router';
import { DashboardComponent } from './dashboard/';
import { settingsRoutes, settingsComponents } from './settings/';

const appRoutes: Routes = [
    { path: '', redirectTo: 'dashboard', pathMatch: 'full'},
    { path: 'dashboard', component: DashboardComponent },
    ...settingsRoutes
];

export const appRoutingProviders: any[] = [

];

export const routeComponents: any[] = [
    DashboardComponent,
    ...settingsComponents
];

export const routing = RouterModule.forRoot(appRoutes, {useHash: true});

Here are my settings .routes.ts

import { Routes } from '@angular/router';
import { SettingsComponent } from "./settings.component";
import { DashboardSettingsComponent } from "./dashboard-settings/dashboard-settings.component";

export const settingsRoutes: Routes = [
    {
        path: 'settings',
        component: SettingsComponent,
        children: [
            { path: 'dashboard-settings', component: DashboardSettingsComponent }
        ]
    }
];

export const travelSettingsComponents = [
    SettingsComponent,
    DashboardSettingsComponent
];

** If I delete this line from the settings.routes.ts file, there is no error, and it allows me to go to the route settings:

{ path: 'dashboard-settings', component: DashboardSettingsComponent }
+4
source share
1 answer

If you have a route with children, I believe that you need to specify a default child path:

children: [
    { path: '', component: SettingsComponent },
    { path: 'dashboard-settings', component: DashboardSettingsComponent }
]

This will result in the following URLs: /settingsand/settings/dashboard-settings

+3
source

Source: https://habr.com/ru/post/1651124/


All Articles