服务和组件之间的循环依赖关系警告(角度)



假设我们有以下内容: 一个CoolModule(cool.module.ts),负责处理很酷的东西。 该CoolModule包含以下内容:

  • CoolDialogComponent(cool-dialog.component.ts)
  • CoolService(cool.service.ts)
  • 。其他很酷的文件

使用CoolModule的应用程序通过CoolService使用它的功能,这是一个可注入的单例服务。

CoolService有很多很酷的方法。其中一个可以打开材料对话框。它传递对话框的CoolDialogComponent,以将其用作对话框的内容。

CoolDialogComponent有一个特定的动作,调用CoolService的方法之一。

此时:

  • CoolDialogComponent依赖于CoolService
  • CoolService依赖于CoolDialogComponent

我是这里唯一一个认为不应该仅仅因为循环依赖警告而重构它的人吗?

  • 我认为CoolService的工作是成为一种可注射的服务,我们可以通过它的功能使用它的功能。
  • CoolDialogComponent通过定义模式对话框的内容来完成它的工作。它能够调用它的方法。
  • 它们在CoolModule中是一起的,没有彼此就不存在。
  • 创建一个额外的服务只是为了解决循环依赖警告似乎有点像强奸它的结构。

请解释一下我在这里看不到的观点! 和/或提供解决方案以摆脱警告!(不,我不想在 angular cli 的配置中关闭它)。

CoolDialogComponent 有一个特定的操作,用于调用 CoolService 的方法之一。

在另一个 TypeScript 文件中定义一个CoolServiceInterface

export interface CoolServiceInterface {
sharedMethod();
}

让服务实现接口,并让组件仅引用接口。

CoolService有很多很酷的方法。其中一个可以打开材料对话框。它传递对话框的 CoolDialogComponent,以将其用作对话框的内容。

创建模式对话框时,CoolService应将新的CoolDialogContext类注入到CoolDialogComponent中。使用组件工厂创建模式对话框时,有一种方法可以在创建提供程序之前添加提供程序,但此处的要点是,应使用CoolService来创建模式,并使用上下文来管理模式的生命周期

相关内容

  • 没有找到相关文章

最新更新