在注入Router Angularjs 2之前引导至少一个组件

时间:2016-10-14 11:03:20

标签: angular dependency-injection angular-services

我已经为这个问题进行了很多搜索,但是找不到任何相关文章或者stackoverflow问题,尽管有很多相同标题的问题,但情景不同。我无法在服务的构造函数上要求依赖,这就是我收到此错误的原因。

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

注意:如果我只是在clear the constructor中定义CustomerService class个依赖关系,那么它就像魅力一样。

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

AuthService和站点服务类及其依赖项加载没有问题。只是AuthService和SiteService类的一些sudo外观

@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装饰者。

@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依赖项,那么应用程序运行正常。

任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:5)

我使用的是角度路由器版本

"@angular/router": "3.0.0"

并尝试将其更新为

"@angular/router": "3.1.0"

像魅力一样工作。 :)