Winkel-6+ :ProvidedIn ein nicht-root-Modul verursacht eine zirkuläre Abhängigkeit

Ich bin versucht, einen zu lösen-service über die neue providedIn Attribut.

Dies ist eine übersetzungen resolver, welches ich in einem geschützten Modul:

JS:

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...
    }
}

Als ich erklärte, dass die übersetzungen resolver service in den geschützten routing-Modul:

JS:

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 { }

Aufgrund der Tatsache, dass ich importieren (Typoskript import) die protected.module im translations-resolver.service.ts , um es zu benutzen in der providedIn Attribut ich bekomme eine WARNUNG in die Zirkuläre Abhängigkeit erkannt:

path/to/translations-resolver.service.ts -> 

protected/protected.module.ts ->

protected/protected-routing.module.ts -> 

path to translations-resolver.service.ts

Den 2. Pfad (protected/geschützt.- Modul.ts) Hinzugefügt wird aufgrund der providedIn Attribut.

Kann ich dieses Problem beheben, indem Sie einfach die Bereitstellung der translationsResolver als NgModule provider (in der Anbieter-array ist), aber ich bevorzuge es, ein injectable Anbieter.

Irgendwelche Vorschläge für die Lösung dieses?

InformationsquelleAutor RtmY | 2018-06-27
Schreibe einen Kommentar