我正在使用 ActivatedRoute 从注入服务中的路由中获取参数。如果我在应用程序模块或应用程序组件中将服务指定为提供程序,则调用它时参数映射为空。如果我在拉入服务的组件中将其指定为提供者,则它具有参数。
为什么会这样。我很难找到有关 ActivatedRoute 如何确定范围以及它如何与服务交互的好信息。
链接到 plnkr 中的此行为。取消注释 a.component.ts 中的第 11 行(providers 字段)以在您单击我时查看它是否正常工作! https://plnkr.co/edit/3U9dZm9fdUlG6KW3GyoQ
import {Component, OnInit} from '@angular/core'
import {AService} from './a.service.ts'
@Component({
selector: 'app-a',
template: `
<div>
<h2>Hello {{id}}</h2>
</div>
`,
// providers: [AService]
})
export class AComponent implements OnInit {
id: string;
constructor(private aService: AService) {
}
ngOnInit() {
this.id = this.aService.getId();
}
}