Я использую angular-cli
с Angular 5. Я пытаюсь создать службу, которая сама использует другую службу.
Однако я получаю чередующиеся ошибки «Не удается разрешить все параметры для [наименование услуги]: (?)."и "Не удается разрешить все параметры для e: (?,?,?,?)."
Вот мои настройки:
MyLoggerService
import { Injectable, Inject, forwardRef } from "@angular/core";
import { OtherLoggerService } from "@A/AServices";
// OtherLoggerService is from a package I installed via npm, so I won't include it here.
// I thought I was missing this @Injectable decorator, but adding it to my
//code gives me the e: (?, ?, ?, ?) error
//Without this @Injectable() line, I get the MyLoggerService: (?) error.
@Injectable()
export class DMLoggerService extends {
constructor(
@Inject(forwardRef(() => OtherLoggerService)) private otherLoggerService: OtherLoggerService
) { }
public logEvent(): void {
this.otherLoggerService.logEvent();
}
public trackPageView(): void {
this.otherLoggerService.trackPageView();
}
}
MyComponent
import { Component, Inject, forwardRef} from "@angular/core";
import { OtherLoggerService} from "@A/AServices";
import { MyLoggerService } from "../../common/services/mylogger.service";
import { AnotherService } from "@A/AServices";
@Component({
selector: "my-component",
templateUrl: "./my-component.component.html"
})
export class MyComponent{
constructor(
@Inject(forwardRef(() => MyLoggerService)) private myLoggerService: MyLoggerService,
private anotherService: AnotherService
) {
this.myLoggerService.trackPageView();
this.anotherService.someFunc();
}
}
MyModule
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { CommonModule } from "@angular/common";
import { OtherLoggerService} from "@A/AServices"; // Just added this per comments, but still receive the same errors
import { MyLoggerService } from "../../common/services/mylogger.service";
import { AnotherService } from "@A/AServices";
@NgModule({
imports: [
CommonModule
BrowserModule
],
declarations: [],
providers: [OtherLoggerService, MyLoggerService, AnotherService]
// Added OtherLoggerService to this array but still received errors
})
export class MyModule { }
Проблема в том, что где-то есть инжекторы, но яЯ не уверен, куда идти.Я двигался по кругу, чередуя те же две ошибки.
Я не использую бочки, насколько я понимаю, поэтому в идеале это не должно быть проблемой порядка импорта.
IЯ видел похожие темы, но еще не нашел ни одного рабочего решения.
Редактировать: «OtherLoggerService» и «AnotherService» - это сервисы, полученные из пакета, который я установил с помощью npm, поэтому я не буду публиковать ихсодержание здесь.Тем не менее, если есть что-то, чему я могу научиться или что нужно иметь в виду в результате их использования, пожалуйста, поделитесь своими комментариями.
Редактировать: Добавлен импорт для OtherLoggerService
на MyModule
, но он все еще получаетошибки.
Редактировать: Попытка добавления OtherLoggerService
в массив провайдеров на MyModule
, все еще получая ошибки.