首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角:如何解决指令和组件之间的循环依赖关系?

角:如何解决指令和组件之间的循环依赖关系?
EN

Stack Overflow用户
提问于 2017-08-23 07:58:18
回答 1查看 3.2K关注 0票数 8

我有一个RadioButtonComponent和一个RadioButtonGroupDirective,它们相互依赖:

RadioButtonComponent:

代码语言:javascript
复制
import { RadioButtonGroupDirective } from "./radio-button-group.directive";
...
constructor(@Optional() @Inject(forwardRef(() => RadioButtonGroupDirective)) radiobuttonGroup: RadioButtonGroupDirective, ...) {

RadioButtonGroupDirective:

代码语言:javascript
复制
import { RadioButtonComponent } from "./radio-button.component";
...
@ContentChildren(forwardRef(() => RadioButtonComponent))
private radioButtons: QueryList<RadioButtonComponent>;

随着webpack最新更新的角-cli,我得到以下警告时,建设:

代码语言:javascript
复制
WARNING in Circular dependency detected:
lib\controls\radio-button\radio-button-group.directive.ts -> lib\controls\radio-button\radio-button.component.ts -> lib\controls\radio-button\radio-button-group.directive.ts

WARNING in Circular dependency detected:
lib\controls\radio-button\radio-button.component.ts -> lib\controls\radio-button\radio-button-group.directive.ts -> lib\controls\radio-button\radio-button.component.ts

实际上,代码可以工作,因为我在这两种情况下都使用forwardRef(),指定其他类可能尚未加载。但我该如何解决这个警告呢?

通常,我会为这两个类中的一个实现一个接口,并使用这个接口,但是@Inject@ContentChildren都不能使用接口,对吗?

EN

回答 1

Stack Overflow用户

发布于 2018-10-11 12:56:21

  1. 按目的排列您的文件结构
  2. 对于每个文件夹组,添加一个index.ts文件。
  3. 在index.ts中,导出模块、组件、文件夹和/或等。

例如,内部组件/共享/按钮/索引。

代码语言:javascript
复制
export * from './radiobuttoncomponent';

在无线电按钮文件夹外添加另一个带有index.ts的export * from './radiobutton';

在导入中,更新引用以使用通用路径

代码语言:javascript
复制
import { RadioButtonComponent} from "./shared";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45833909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档