在每个组件中都有一个我用作提供者的服务:
export class LayersSemanticService {
constructor(
private nMapLibrary: MapLibraryService,
private linkService: LinkService
) {
}
}
用作实例:
@Component({
selector: "app-intersection-layer-component",
templateUrl: "./intersection-layer-component.component.html",
styleUrls: ["./intersection-layer-component.component.scss"],
providers: [LayersSemanticService]
})
问题是我得到了这个错误:
compiler.js:2175 Uncaught Error: Can't resolve all parameters for LayersSemanticService: (?, ?).
可以通过将服务用作根服务来解决,但是我需要单独的服务实例。
答案 0 :(得分:1)
即使您在组件LayersSemanticService
中声明了providers
,您仍然需要将该服务标记为@Injectable()
。
@Injectable()
export class LayersSemanticService {
constructor(
private nMapLibrary: MapLibraryService,
private linkService: LinkService
) {
}
}
在the docs中,@Injectable
是:
装饰器,将一个类标记为可提供并作为依赖项注入。
答案 1 :(得分:0)
@Injectable()
export class XyzService{
constructor(
) {
}
}
在服务顶部使用Injectable。