2017-01-04 8 views
5

Powiedzmy mam następujący appRoutingModule:Jak korzystać RouterModule.forRoot() w poleceniu Angular2 kompilator/CLI NGC

export const routes: Route[] = [ 
    { 
    path: '', 
    component: ApplicationlistComponent 
    } 
]; 

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

Podczas kompilacji to z NGC CLI komenda to daje następujący błąd:

Error: Error encountered resolving symbol values statically. Calling function 'RouterModule', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol AppRoutingModule in C:/git/mxt-frontend/landing-page-client/src/client/app/app-routing.module.ts, resolving symbol AppRoutingModule in C:/git/mxt-frontend/landing-page-client/src/client/app/app-routing.module.ts 

Próbowałem umieszczenie go wewnątrz eksportowanego const:

export const routerModule = RouterModule.forRoot(routes); 

Ale to daje ten błąd:

Error: Error encountered resolving symbol values statically 

Jaki jest obejście/fix, aby dostać tę pracę? Jak zdefiniować moje trasy, jeśli nie mogę przekazać go do RouterModule?

używam wersje:

"@angular/compiler": "~2.4.0", 
"@angular/compiler-cli": "~2.4.0", 
"@angular/platform-server": "~2.4.0", 
"@angular/router": "~3.4.0" 

itp

+1

Problem wydaje się być "eksport: [RouterModule]' – PierreDuc

+0

@PierreDuc Jeśli usunę ten eksport nadal daje błąd. Jeśli usunę "RouterModule.forRoot (routes)", nie będzie już podawał błędu. –

+0

należy zaimportować go, zanim będzie można go użyć. –

Odpowiedz

2

Postanowiłem to przez przywrócenie kątowy z powrotem do wersji 2.3.1. Wygląda na to, że jest uszkodzony w wersji 2.4.0 ..

+0

Dobre miejsce. Mam ten sam problem i zgłosiłem zgłoszenie błędu dotyczące Angular: https://github.com/angular/angular/issues/13844 – gallivantor

1

Dlaczego Twój kod nie importuje ani BrowserModule ani CommonModule? Próbowałeś tego?

@NgModule({ imports: [BrowserModule, ApplicationsModule, RouterModule.forRoot([ { path: '', component: ApplicationlistComponent }]) ], declarations: [ApplicationlistComponent], bootstrap: [ApplicationlistComponent] }) export class AppRoutingModule { } Należy również wypróbować kod routera w osobnym pliku, np. app.routing.ts:

const routes: Routes = path: '', 
    component: ApplicationlistComponent 

export const routing = RouterModule.forRoot(routes); 

iw @NgModule:

@NgModule({ 
    imports: [BrowserModule, ApplicationsModule, 
      routing 
], 
    declarations: [ApplicationlistComponent], 
+0

Moduł CommonModule jest importowany w appModule. Ale po prostu próbowałem importować go do AppRoutingModule, ale wciąż ten sam błąd. –

+0

Następną rzeczą, którą chciałbym spróbować, jest utrzymanie konfiguracji trasy w osobnym pliku. –

+0

Masz na myśli 'export const routes: Route []' w osobnym pliku? –