Я пытаюсь предоставить службу разрешения с помощью нового атрибута providedIn
.
Это средство преобразования переводов, которое я использую в защищенном модуле:
import { Injectable } from '@angular/core';
import { Observable , pipe } from 'rxjs';
import {map} from "rxjs/operators";
//This is causing: "WARNING in Circular dependency detected:"
import {ProtectedModule} from "../../../protected/protected.module";
import { HttpHandlerService } from '../../http/http-handler.service';
@Injectable({
providedIn: ProtectedModule //Over here (I need the import for this line)
})
export class TranslationsResolverService {
constructor(private _httpHandlerService : HttpHandlerService) { }
resolve(): any {
//Do Something...
}
}
Я объявил службу распознавания переводов в защищенном модуле маршрутизации:
import { NgModule } from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
import {AuthGuard} from "../core/resolvers/auth/auth.guard";
import {TranslationsResolverService} from "./../core/resolvers/translations/translations-resolver.service";
const routes: Routes = [
{
path : 'app' ,
component: ProtectedComponent,
resolve : {
translations : TranslationsResolverService // <---- Over here - i can't remove that of course
},
canActivate: [AuthGuard],
]
}
];
@NgModule({
imports : [RouterModule.forChild(routes)],
exports : [RouterModule]
})
export class ProtectedRoutingModule { }
Из-за того, что я импортирую (импорт машинописного текста) protected.module
в translations-resolver.service.ts
, чтобы использовать его в атрибуте providedIn
, я получаю ПРЕДУПРЕЖДЕНИЕ при обнаружении циклической зависимости:
path/to/translations-resolver.service.ts ->
protected/protected.module.ts ->
protected/protected-routing.module.ts ->
path to translations-resolver.service.ts
2-й путь (protected / protected.module.ts) добавлен из-за атрибута providedIn
.
Я могу исправить это, просто указав translationsResolver
как NgModule provider
(в массиве провайдеров), но я предпочитаю, чтобы он был injectable
провайдером.
Есть предложения по решению этой проблемы?