Ошибка при компиляции шаблона. Вызовы функций AppRoutingModule не поддерживаются в декораторах, но вызывается RouterdataUrl. - PullRequest
0 голосов
/ 13 февраля 2019

Я создаю рабочую версию своего проекта angular 7 и сталкиваюсь с этой ошибкой, вот мой код APP-Routing.Module.ts, он содержит общие значения Routes

Вот сообщение об ошибке: -ОШИБКА в src \ app \ app-routing.module.ts (19,30): Ошибка во время компиляции шаблона Вызовы функций «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 

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-html lang-html prettyprint-override"><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 голосов
/ 30 апреля 2019

При создании приложения Angular в рабочей среде по умолчанию используется приложение с компиляцией AOT.На этом этапе угловой компилятор принимает метаданные компонента и предварительно компилирует фабрику компонентов.Угловой компилятор может обрабатывать только подмножество javascript, см. Дополнительную информацию здесь .

Вкратце: проблема в том, что вы не можете использовать new.Я бы предложил использовать фабричный метод (или макрос , как его называет угловая направляющая).Если это невозможно, вы должны переосмыслить свой код или рассмотреть JIT-компиляцию.

...