2017-01-04 4 views
5

のは、私は次のようappRoutingModuleを持っているとしましょう:Angular2コンパイラ/ CLIのNGCコマンドでRouterModule.forRoot()を使用する方法

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

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

CLIは、それが次のエラーを与えるコマンドNGCでこれをコンパイルする場合:

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 

私は、エクスポートされたconstの内側に入れてみました:

export const routerModule = RouterModule.forRoot(routes); 

しかし、それは、このエラーを与える:この作業を取得するための回避策/修正です

Error: Error encountered resolving symbol values statically 

何?私がRouterModuleに渡すことができない場合、どのように私のルートを定義するのですか?

私はバージョンを使用しています:

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

など

+1

問題は 'exports:[RouterModule]' – PierreDuc

+0

@PierreDucのようです。このエクスポートを削除してもエラーは発生します。 'RouterModule.forRoot(routes)'を削除してもエラーは発生しなくなりました。 –

+0

を使用する前に、代わりにインポートする必要があります。 –

答えて

2

私は戻って、バージョン2.3.1に角度戻すことによってこれを解決しました。 2.4.0リリースで壊れているように見えます。

+0

良い点。私は同じ問題を抱えており、Angularに関するバグレポートを提出しています:https://github.com/angular/angular/issues/13844 – gallivantor

1

をあなたのコードはBrowserModuleもCommonModuleどちらをインポートしないのはなぜ? これは試しましたか?

@NgModule({ imports: [BrowserModule, ApplicationsModule, RouterModule.forRoot([ { path: '', component: ApplicationlistComponent }]) ], declarations: [ApplicationlistComponent], bootstrap: [ApplicationlistComponent] }) export class AppRoutingModule { } もう1つの試みは、ルータのコードを別のファイルに保存することです。 app.routing.ts:

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

export const routing = RouterModule.forRoot(routes); 

と@NgModuleで:

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

CommonModuleはappModuleにインポートされます。しかし、私はちょうどAppRoutingModuleでもそれをインポートしようとしましたが、それでも同じエラーです。 –

+0

私がしようとしている次のことは、ルート設定を別のファイルに保存することです。 –

+0

'' const const routes:Route [] 'を別のファイルにエクスポートしようとしていますか? –

関連する問題