2016-08-25 1 views
8

Я получаю эту ошибку в моем RC5 приложение: отказУгловое 2: Bootstrap по меньшей мере, один компонент перед инъекцией маршрутизатор

Promise: Bootstrap, по меньшей мере, одного компонента перед инъекцией маршрутизатора.

main.ts:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { AppModule } from './app.module'; 
platformBrowserDynamic().bootstrapModule(AppModule); 

app.module.ts:

@NgModule({ 
    imports: [ 
    BrowserModule, 
    routing, 
    SharedModule.forRoot() 
    ], 
    declarations: [ 
    AppComponent, 
    ErrorComponent 
    ], 
    bootstrap: [AppComponent] 
}) 
export class AppModule {} 

shared.module.ts:

@NgModule({ 
    imports: [CommonModule, RouterModule, HttpModule, FormsModule, ReactiveFormsModule], 
    declarations: [TranslatePipe, DateToStringPipe, HeaderComponent, FooterComponent], 
    exports: [TranslatePipe, DateToStringPipe, CommonModule, FormsModule, ReactiveFormsModule, HeaderComponent, FooterComponent] 
}) 
export class SharedModule { 

    static forRoot(): ModuleWithProviders { 

    return { 
     ngModule: SharedModule, 
     providers: [ 
     FeedbackService, 
     CookieService, 
     AuthService, 
     LoggerService, 
     RouteGuard, 
     { 
      provide: TranslateLoader, 
      useFactory: (http: Http) => new TranslateStaticLoader(http, 'app/languages', '.json'), 
      deps: [Http] 
     }, 
     TranslateService, 
     SearchService, 
     SharedComponent, 
     HeaderComponent, 
     FooterComponent 
     ] 
    }; 

    } 

} 

@NgModule({ 
    exports: [ SharedModule], 
    providers: [] 
}) 
export class SharedRootModule {} 

app.component.ts:

export class AppComponent extends SharedComponent implements OnInit { 

constructor(
    _feedbackService: FeedbackService, 
    _loggerService: LoggerService, 
    _translateService: TranslateService, 
    _authService: AuthService, 
    _router: Router 
) { 

    super(
     _feedbackService, 
     _loggerService, 
     _translateService, 
     _authService, 
     _router 
    ); 

} 

и, наконец, shared.component.ts:

constructor(
    protected _feedbackService: FeedbackService, 
    protected _loggerService: LoggerService, 
    protected _translateService: TranslateService, 
    protected _authService: AuthService, 
    protected _router: Router 
) { 

} 

Я попытался с помощью AppComponent без расширения с SharedComponent, как это:

export class AppComponent implements OnInit { 

constructor(){ 
} 

но до сих пор производит ту же самую проблему.

ответ

7

Угловой считает, что нет необходимости вводить Router на уровне Module, разумно вводить Router после загрузки хотя бы одного компонента. Я подозреваю, что хотя бы одна из ваших служб должна вводить Router, которая предоставляется загруженному Module, что вызывает эту ошибку. Что вы можете сделать, это ввести службу, которая использует Router для компонента приложения, поэтому сначала загружается хотя бы один компонент, и все ваши подкомпоненты наследуют эту службу от компонента приложения.

Смежные вопросы