Angular 角度错误:ActivatedRoute没有提供程序
我使用的是angular 5最新版本,我点击了下面的异常Angular 角度错误:ActivatedRoute没有提供程序,angular,angular-activatedroute,Angular,Angular Activatedroute,我使用的是angular 5最新版本,我点击了下面的异常 ERROR Error: StaticInjectorError(AppModule)[AppComponent -> ActivatedRoute]: StaticInjectorError(Platform: core)[AppComponent -> ActivatedRoute]: NullInjectorError: No provider for ActivatedRoute! at _Nu
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)
app.module.ts如下所示
从'@angular/router'导入{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 { }
为了能够在角度元素中提供
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
还是有点奇怪
有关更多详细信息,请参阅:
您的路由器配置是如何编写的?你能添加一些代码吗?我已经在使用RouterModule.forRoot,就像这样
RouterModule.forRoot(路由,{enableTracing:false,onSameUrlNavigation:'reload'})
。如何将activatedRoute添加到此列表?添加到哪个列表?你的意思是什么?根据你的说法,我应该添加RouterModule.forRoot([])
使其工作。但我已经在用另一种方式使用RouterModule.forRoot了。那么,我需要在我自己的RouterModule.forRoot实现中更改什么,以便将activatedRoute包括在路由中,{enableTracing:false,onNameUrlNavigation:'reload'}
参数列表?为我的答案添加了一个小的说明。您不需要对代码进行任何更改。@d锁定您最好创建一个新问题