私はこの問題のためにたくさんの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
の依存関係をクリアすると、アプリケーションはうまく動作します。
ご迷惑をおかけして申し訳ございません。
ルートコンポーネントの '@NgModule()'を追加してください。 –
http://stackoverflow.com/questions/39148492/angular-2-bootstrap-at-least-one-component-before-injecting-routerのように見えます –
提案は、 'AuthService'を' AppComponent'。 –