我使用的是angular 5的最新版本,并且我遇到了下面的异常
ERROR Error: StaticInjectorError(AppModule)[AppComponent -> ActivatedRoute]:
StaticInjectorError(Platform: core)[AppComponent -> ActivatedRoute]:
NullInjectorError: No provider for ActivatedRoute!
at _NullInjector.get (core.js:1002)
at resolveToken (core.js:1300)
at tryResolveToken (core.js:1242)
at StaticInjector.get (core.js:1110)
at resolveToken (core.js:1300)
at tryResolveToken (core.js:1242)
at StaticInjector.get (core.js:1110)
at resolveNgModuleDep (core.js:10854)
at NgModuleRef_.get (core.js:12087)
at resolveDep (core.js:12577)
路由器如下所示,从‘@angular/ app.module.ts’导入{ Routes,RouterModule };
@NgModule({
declarations: [
AppComponent,
OptyDetailsComponent,
GlobalNavbarComponent
],
imports: [
BrowserAnimationsModule,
BrowserModule,
HttpModule,
HttpClientModule,
FlexLayoutModule,
FormsModule,
MatButtonModule,
MatInputModule
RouterModule
],
entryComponents: [
],
providers: [
DataStoreService,
DataObjectsOscService,
AdobeSignService,
],
bootstrap: [AppComponent]
})
export class AppModule { }
发布于 2018-03-01 07:08:44
为了能够在angular元素中提供ActivatedRoute
,需要将调用RouterModule.forRoot
的结果导入到根模块(AppModule)中。这是因为RouterModule.forRoot
返回的模块包括ActivatedRoute
等实例的提供程序。
因此,基本上您需要向根模块中的导入添加以下内容:
@NgModule({
...
imports: [
...
// Remark: because you havent defined any routes, I have to pass an empty
// route collection to forRoot, as the first parameter is mandatory.
RouterModule.forRoot([]),
...
],
...
})
export class AppModule { }
但老实说,尽管您没有为根模块定义任何路由,但您使用ActivatedRoute
还是有点奇怪。
有关更多详细信息,请参阅:
https://stackoverflow.com/questions/49039457
复制相似问题