2016-10-14 16 views
1

私はこの問題のためにたくさんのGoogleを持っていますが、同じ記事で多くの質問がありますがシナリオでは違います。私はサービスのコンストラクタに依存関係を要求することができませんでした。なぜなら、私はこのエラーを受けているからです。注入する前に少なくとも1つのコンポーネントをブートストラップしてください。ルータAngularjs 2

Bootstrap at least one component before injecting Router. ; Zone: <root> ; Task: Promise.then ; Value: Error: Bootstrap at least one component before 

注: I CustomerService classで定義されたばかりclear the constructor依存関係、それは魔法のように動作している場合。

@Injectable() 
export class CustomerService 
constructor(private authService: AuthService, private siteService: SiteService) { } 

AuthServiceとSite Service Classおよびその依存関係は問題なくロードされます。 AuthServiceとSiteServiceクラス

@Injectable() 
export class AuthService 
constructor(private http: Http, private storageService: StorageService, 
      private siteService: SiteService, private router: Router) {} 


@Injectable() 
export class SiteService { 
constructor(private http: Http, private storageService: StorageService) {} 

App Module@ngModuleデコレータのほんの一部sudoのファサード。

@NgModule({ 
    declarations: [ 
    AppComponent, 
    AuthComponent, 
    LoginComponent, 
    HeaderComponent, 
    SignupComponent, 
    CompanyComponent, 
    Step2Component 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpModule, 
    AngularAppRoutingModule 
    ], 
    providers: [ AuthGuard, AuthService, StorageService, StepsNavigatorGuard, SiteService, CustomerService], 
    bootstrap: [AppComponent] 
}) 

注:この問題は、ちょうどCustomerServiceに残る。私がAppModuleのプロバイダー配列からそれを削除しようとすると、それはconstructorの依存関係をクリアすると、アプリケーションはうまく動作します。

ご迷惑をおかけして申し訳ございません。

+0

ルートコンポーネントの '@NgModule()'を追加してください。 –

+0

http://stackoverflow.com/questions/39148492/angular-2-bootstrap-at-least-one-component-before-injecting-routerのように見えます –

+0

提案は、 'AuthService'を' AppComponent'。 –

答えて

5

私は、角ルータバージョン

"@angular/router": "3.0.0" 

を使用していたと

"@angular/router": "3.1.0" 

にそれを更新しようとしたが魅力のように働きました。 :)

+0

私はこの問題で2時間苦労しました....ありがとう.. – refactor

関連する問題