装饰器不支持AppRoutingModule函数调用的模板编译过程中的错误,但已调用RouterdataUrl

时间:2019-02-13 07:23:58

标签: angular angular-routing

我正在为我的angular 7项目制作一个生产版本 面对这个错误,这是我的APP-Routing.Module.ts代码,它包含常见的Routes值

这是错误消息:src \ app \ app-routing.module.ts(19,30)中的-ERROR:'AppRoutingModule'模板编译期间发生错误   装饰器不支持函数调用,但调用了“ RouterdataUrl”。

    var con: RouterdataUrl = new RouterdataUrl();
    const routes: Routes = con.routerdata();

    @NgModule({
      imports: [RouterModule.forRoot(routes)],
      exports: [RouterModule]
    })
    export class AppRoutingModule { }

    export const routingComponents = [LeftmenuComponent, DasboardComponent, HeardermenuComponent, UserdiplayComponent,
      AdsServiceComponent, UsertaskdisplayComponent, WithdrwalComponent, AllplanComponent, DaywisereportComponent]


    function routerdata() {
      const Routes = [
        { path: 'leftmenu', component: LeftmenuComponent },
        { path: 'dasboard', component: DasboardComponent },
        { path: 'heardermenu', component: HeardermenuComponent }
      ];
      return Routes;
    }

 And here is  APP MODULE CODE 

    //IMPORT....
    @NgModule({
      declarations: [
        AppComponent,
        routingComponents,
        WithdrwalComponent,
        UsertaskdisplayComponent,
        AllplanComponent,
        UsersqueryComponent,
        DaywisereportComponent
      ],
      imports: [
        BrowserModule,
        FormsModule,
        HttpClientModule, 
        BrowserAnimationsModule,
        ToastrModule.forRoot(),
        NgxLoadingModule.forRoot({}),
        AppRoutingModule
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }

1 个答案:

答案 0 :(得分:0)

在生产环境中构建Angular应用时,默认设置是使用AOT编译构建。在此阶段,角度编译器将获取组件元数据并预编译组件工厂。 Angular编译器仅能够处理javascript的子集,请参阅更多信息here

简而言之:问题是您不能使用new。我建议使用工厂方法(或macro,因为角度指南称呼它)。如果这不可能,那么您必须重新考虑您的代码,或考虑进行JIT编译。