我正在查看教程{{3}}。
(滚动到最底部的位置" HeroDetailComponent",然后选择标签hero-detail.component.ts)
为了使用位置服务,它所做的就是从@ angular / common导入位置,将它放在构造函数参数中,以及它的位置。它没有把它放在提供者数组中,也没有放在模块的提供者数组中。是否有些服务只是自动注入而没有在providers数组中指定它?
答案 0 :(得分:0)
这是因为本教程使用的是RouterModule。 RouterModule为您提供Location
和LocationStrategy
服务,因此您无需在AppModule中提供它们。 src code
// Router Module providers array
providers: [
ROUTER_PROVIDERS, // Location service is provided in this array
{
provide: LocationStrategy,
useFactory: provideLocationStrategy,
deps: [
PlatformLocation, [new Inject(APP_BASE_HREF), new Optional()], ROUTER_CONFIGURATION
]
},
...
],
如果您没有使用RouterModule,那么您必须自己提供。像
这样的东西// app.module.ts
providers: [
Location,
{provide: LocationStrategy, useClass: PathLocationStrategy}
]