假设我们有以下内容: 一个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
来创建模式,并使用上下文来管理模式的生命周期。