【发布时间】:2019-02-22 20:13:33
【问题描述】:
我有两个模块,其中的组件相互使用。所以我必须在“test”中导入“word”,在“word”中导入“test”-->抛出错误......我该怎么办?
模块“测试”:
@NgModule({
declarations: [
AppTest1Component,
AppTest2Component,
],
imports: [
AppWordModule,
],
exports: [
AppTest1Component,
AppTest2Component,
],
})
export class AppTestModule {
}
模块“单词”:
@NgModule({
declarations: [
AppWordComponent,
],
imports: [
AppTestModule,
],
exports: [
AppWordComponent,
],
})
export class AppWordModule {
}
因为模板,我互相导入。 test1.component.ts的模板调用word.component.ts,word.component.ts的模板调用test1.component.ts。
test1.html
<div class="app-word"></div>
word.html
<div class="app-test1"></div>
我尝试使用 SharedModule 但没有实现...
【问题讨论】:
-
你不能有循环依赖。您至少需要分解其中一个模块才能打破这种循环依赖关系。
-
这似乎是一个糟糕的架构。为什么模块 A 需要模块 B 而模块 B 需要 A ?
-
您的代码正在创建循环依赖。将这两个模块导入
appmodule。并从module中删除导入模块 -
是的,我知道它是循环依赖...架构非常复杂,所以我真的别无选择。我尝试将它们都导入到父模块(应用程序模块)中,但它不起作用:“[...] 它不是 'app-word' 的已知属性”
-
为什么不创建一个包含两个组件的 SharedModule,然后在 test 和 word 模块中导入 sharedmodule?那会奏效的。
标签: angular import module circular-dependency