2016-08-14 21 views
10

Angular 2 RC5(RC4から)にアップグレードした後、私のコンポーネントにActivatedRouteを注入できなくなったようです。ActivatedRoute - Angular 2 RC5のプロバイダがありません

オリジナル例外:ActivatedRouteのプロバイダはありません!

ここでは、コードの関連する作品だ:

import { Component } from '@angular/core'; 

import { 
    ActivatedRoute 
} from '@angular/router'; 

declare var module: { 
    id: string; 
}; 

@Component({ 
    moduleId: module.id, 
    selector: 'mds-app', 
    templateUrl: 'app.component.html', 
    styleUrls: [ 
     'app.component.css' 
    ], 
    directives: [] 
}) 
export class AppComponent { 

    constructor(private _route: ActivatedRoute) { 
    this._route.params.subscribe(params => console.log(_route)); 
    } 
} 

、ここでは私のapp.module.tsです:

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

import { AppComponent } from './app.component'; 

import { 
    routing, 
    appRoutingProviders 
} from './app.routing'; 

@NgModule({ 
    imports:  [ BrowserModule, CommonModule, RouterModule ], 
    declarations: [ AppComponent ], 
    bootstrap: [ AppComponent ], 
    providers: [ appRoutingProviders ] 
}) 
export class AppModule { } 

が、私は「ツアー英雄の」例をチェックして、彼らはまったく同じことを行いますActivatedRouteのプロバイダ宣言がないので、ここで何が起こっているのだろうか?

答えて

20

GitHubでAngular 2の問題をブラウジングしていましたが、上記の問題に対する解決策がわかりました(here参照)。私は、NgModuleimportsに(上記importを参照)、すなわち

@NgModule({ 
    imports:  [ BrowserModule, CommonModule, RouterModule, routing ], 
    declarations: [ AppComponent ], 
    bootstrap: [ AppComponent ], 
    providers: [ appRoutingProviders ] 
}) 

routingを追加するために必要な

は角2のエラーメッセージがちょうど彼らがすでにされているよりも多くの混乱だようです。

私はこの回答が誰かに役立つことを望む、私はすでに私の髪を引き出しようとしていた。

EDITは:人気の要求では、ここで(私は今週仕事オフだとして、それで問題がある場合、私はコメントで知らせて、私の頭の上から)輸入routingためのスニペットです:

app.routing.ts:

export routes: Routes = [ 
    { path: 'sales', component: SalesComponent } 
]; 

export routing = RouterModule.forRoot(routes); 

と次のようにあなたのapp.module.tsあなたがこれをインポートしたい中:

import { routing } from 'app.routing' 
+1

"ルーティング"の正しいインポートは何ですか?私はそれを見つけることができません – michali

+1

それはエクスポートされた 'RouterModule'です、' imports:[RouterModule.forRoot(routes)] '' routes'が 'routes:Routes = [....]' 'app.routing.ts'から。 –

3

ユニットテストでこのエラーが発生した場合は、RouterTestingModuleをインポートする必要があります

関連する問題