Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角2 RC5子路由问题_Angular_Routing_Router - Fatal编程技术网

Angular 角2 RC5子路由问题

Angular 角2 RC5子路由问题,angular,routing,router,Angular,Routing,Router,我正在尝试使子路由正常工作,这是我遇到的错误: EXCEPTION: Error: Uncaught (in promise): Error: Cannot match any routes: 'settings' 这是我的app.modules.ts import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { CommonModule

我正在尝试使子路由正常工作,这是我遇到的错误:

EXCEPTION: Error: Uncaught (in promise): Error: Cannot match any routes: 'settings'
这是我的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 {

}
这是我的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});
这是我的设置.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
];
**如果我从settings.routes.ts文件中删除此行,则不会出现错误,并允许我转到设置路由:

{ path: 'dashboard-settings', component: DashboardSettingsComponent }

如果您有一个包含子路径的路由,我相信您需要指定一个默认子路径,如下所示:

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

这将生成以下URL:
/settings
/settings/dashboard settings

谢谢。这对我来说是可行的,但当我添加默认子路径时,我必须添加到组件的实例中。看起来您还需要从顶级路由中删除组件:设置组件来解决该问题。