假设我们有以下内容:
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
通过定义模式对话框的内容来完成任务。而且可以调用它的方法。<packaging>war</packaging>
中绑定在一起,彼此之间不存在。请向我解释我在这里看不到的要点! 和/或提供解决方案以消除警告! (不,我不想在angular-cli的配置中将其关闭。)
答案 0 :(得分:1)
CoolDialogComponent具有一个特殊的操作,该操作调用CoolService的方法之一。
在另一个TypeScript文件中定义CoolServiceInterface
。
export interface CoolServiceInterface {
sharedMethod();
}
让服务实现该接口,并使组件仅引用该接口。
创建模态对话框时,CoolService有很多很酷的方法。其中之一可以打开物料对话框。它为对话框传递CoolDialogComponent,以将其用作对话框的内容。
CoolService
应该将新的CoolDialogContext
类注入CoolDialogComponent
中。使用组件工厂创建模式对话框时,有一种方法可以在创建之前添加提供程序,但是这里的要点是CoolService
应该用于创建模式,并且 context 用于管理模式的生命周期。