gpt4 book ai didi

Angular 6+ :ProvidedIn a non root module is causing a circular dependency

转载 作者:太空狗 更新时间:2023-10-29 16:51:33 30 4
gpt4 key购买 nike

我正在尝试通过新的 providedIn 属性提供解析服务。

这是我在 protected 模块中使用的翻译解析器:

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

我在 protected 路由模块中声明了翻译解析器服务:

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

因为我在 translations-resolver.service.ts 中导入( typescript 导入)protected.module 以便在providedIn 属性 我在检测到循环依赖项时收到警告:

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

protected/protected.module.ts ->

protected/protected-routing.module.ts ->

path to translations-resolver.service.ts

由于 providedIn 属性,添加了第二个路径 (protected/protected.module.ts)。

我可以通过提供 translationsResolver 作为 NgModule provider(在 providers 数组中)来解决这个问题,但我更喜欢它是一个 injectable 供应商。

有什么解决这个问题的建议吗?

最佳答案

我遇到了同样的问题。事实证明,解决方案是“不要这样做”,正如其中一位 Angular 人员在该线程中所解释的那样:https://github.com/angular/angular-cli/issues/10170#issuecomment-380673276

据我所知,归结为根模块提供的服务更容易摇树。

我和你一样失望。

关于 Angular 6+ :ProvidedIn a non root module is causing a circular dependency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51062235/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com