4

在 Angular 2 Style Guide 中,有一个目录结构的建议:https ://angular.io/docs/ts/latest/guide/style-guide.html#04-06

我通常认为这是一个很好的建议,我打算自己做一些非常相似的事情。但是,我遇到了一个问题,我很好奇是否有人解决了它。

请注意,该heroes模块包含一个shared带有heroes-button.component. 大概,我们希望在整个应用程序中使用这个组件(因此,“共享”)。

同样,该villains模块包含一个shared带有villains-button.component.

如果我想在模块和模块中的某个地方使用,那么villains-button.component我最终会得到一个循环引用。heroesheroes-button.componentvillains

简而言之:Angular 不允许我将 ModuleA 导入 ModuleB,并将 ModuleB 导入 ModuleA,但样式指南另有说明。

有人对这种情况有任何解决方案吗?

4

1 回答 1

2

我对此的解决方案是将那些迫使我具有循环依赖的组件(在本例中为vilins-button.component 和 heros-button.component)移动到共享模块中。

最后目录结构如下所示:

HeroesModule
    -HeroComponentA
    -HeroComponentB
VillainsModule
     -VillainComponentA
     -VillainComponentB
SharedModule
     -HeroButton
     -Villain Button    <-- these two are now available across the application

这可能感觉不对,因为您认为“Hero”按钮属于其他 Hero 的东西,但回想起来,随着我的应用程序的增长,我很高兴 Angular 禁止了模块之间的循环依赖。随着应用程序的发展,这是一种非常危险的模式。

于 2017-05-11T10:47:13.927 回答