路由''的配置无效:路由必须指定路径或匹配器

时间:2017-09-27 07:41:55

标签: angular angular2-routing angular-routing angular-route-segment

AppRouting.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from '../buyer/home/home.component';
const routes: Routes = [
   {path: '', redirectTo:'buyer', pathMatch:"full"}
]
@NgModule({
  declarations:[],
  imports:[
    BrowserModule,
    RouterModule.forRoot(routes)
  ],
   exports:[RouterModule]
})

export class AppRoutingModule {}

BuyerRouting.ts

import {CommonModule} from '@angular/common';
import {NgModule} from '@angular/core'; 
import { Routes,RouterModule } from '@angular/router';

import { WelcomeComponent } from './welcome/welcome.component';
import { HomeComponent } from './home/home.component';

@NgModule({
declarations:[],
imports:[
    CommonModule,
    RouterModule.forChild([
        { path: 'buyer', component: HomeComponent},
        { path: '', redirectTo: '/welcome', pathMatch: 'prefix'},
        { path: 'welcome', component: WelcomeComponent}
    ])
],
exports:[RouterModule]
})

export class BuyerRoutingModule {}

当我为应用程序提供服务时。构建成功创建,但当我运行应用程序时,我收到一个错误。我还通过删除emtpy路径检查了这个错误即将到来。

main.ts:12 Error: Invalid configuration of route '': routes must have either 
a path or a matcher specified

2 个答案:

答案 0 :(得分:1)

在NgModule配置中的任何地方(包括RouterModule,TranslateModule等),您都只能使用导出的变量和函数(对于URLMatcher而言),但是不能使用函数来计算值。

来源:https://github.com/angular/angular/issues/18662

因此,根据上述解决方案,您可能有一些路由(包括子路由),在其中使用任何未导出的变量或函数来计算路由。检查。

答案 1 :(得分:0)

这是一个棘手的错误。
我使用的是由一些函数填充的对象,AoT会静态分析我的对象,并且它是空的,因此我必须为AoT填充并定义完整的对象,而我的计划是以某种方式动态地更新单个文件,例如预构建挂钩。
我在祈求常春藤不要受到这种限制!