Ошибка разбора: циклическая зависимость в инициализаторе приложения

Я реализую инициализатор приложения, и я столкнулся с ошибкой циклической зависимости, как показано ниже

Uncaught Error: ошибки синтаксического анализа провайдера: невозможно создать циклическую зависимость! ApplicationRef ("[ERROR ->]"): в NgModule AppModule в./AppModule@-1:-1 в NgModuleProviderAnalyzer.push../node_modules/@angular/compiler/fesm5/compiler.js.NgModuleProviderAnalyzer.parse (компилятор.js:11472) в NgModuleCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.NgModuleCompiler.compile (compiler.js:11836) в JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileModule (compiler.js:23882) в compiler.js:23841 в Object.then (compiler.js:1007) в JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileModuleAndComponents (compiler.js:23839) в JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler.compileModuleAsync (compiler.js:23799) в CompilerImpl.push.. @angular/platform-browser-dynamic/fesm5/platform-browser-dynamic.js.CompilerImpl.compileModuleAsync (platform-browser-dynamic.js:143) в PlatformRef.push../node_modules/@angular/core/fesm5/core.js.PlatformRef.bootstrapModule (core.js:4352) в Object../src/main.ts (main.ts:11) push../node_modules/@angular/compiler/fesm5/compiler.js.NgModuleProviderAnalyzer.parse @ compiler.js:11472 push../node_modules/@angular/compiler/fesm5/compiler.js.NgModuleCompiler.compile @ compiler.js:11836 push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileModule @ compiler.js:23882 (анонимно) @ compiler.js:23841, затем @ compiler.js:1007 push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileModuleAndComponents @ compiler.js:23839 push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler.compileModuleAsync @ compiler.js:23799 push../node_modules/@angular/platform-browser-dynamic/fesm5/platform-browser-dynamic.js.CompilerImplynpileMiledule @ platform-browser-dynamic.js: 143 push../ node_modules/@angular/core/fesm5/core.js.PlatformRef.bootstrapModule @ core.js: 4352./src/main.ts @ main.ts: 11 webpack_require @ bootstrap: 81 0 @ main.ts: 12 webpack_require @ boots trap: 81 checkDeferredModules @ bootstrap: 43 webpackJsonpCallback @ bootstrap: 30 (анонимно) @ main.js:1

Вот так выглядит мой инициализатор

import { Injectable } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Observable } from 'rxjs';
import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';

@Injectable()
export class InitializerService {

    
    flag = false;

    constructor(private http: HttpClient, private route: ActivatedRoute) { }

    initialize(): boolean {
        // access query params using ActivatedRoute object
        // some http calls using HttpClient object
        // also use objects of HttpHeaders and HttpParams
        return this.flag;
    }
}

Ниже описано, как я предоставляю услугу в NgModule.

providers: [
    InitializerService,
    { provide: APP_INITIALIZER, useFactory: init_app, deps: [InitializerService], multi: true},
    { provide: HTTP_INTERCEPTORS, useClass: Interceptor, multi: true }
  ],

Я не уверен, почему я вижу ошибку циклической зависимости

0 ответов

ActivatedRoute недоступен в APP_INITIALIZER из-за начальной загрузки. Вы можете использовать APP_BOOTSTRAP_LISTENER InjectionToken, чтобы убедиться, что ActivatedRoute доступен (что происходит после завершения начальной загрузки).

Другие вопросы по тегам