Angular 4模块相互调用

时间:2018-10-02 15:43:42

标签: angular circular-dependency

假设我有2个模块:客户/像这样的订单:

number

两者都使用自己的服务(通过使用模块中的number

msg.attach(MIMEText(body, 'plain')) 导入/customers /customers-list.component.html /customers-list.component.ts /customers-details.component.html /customers-details.component.ts /customers-create.component.html /customers-create.component.ts /customers.service.ts /customers.module.ts /orders /orders-list.component.html /orders-list.component.ts /orders-create.component.html /orders-create.component.ts /orders.service.ts /orders.module.ts ,因为在我的providers中,我有一个表单,可以在其中为客户添加新订单。如果客户端不存在,我可以按一个按钮,然后显示orders.module

但是现在,我需要通过调用customers.module在我的orders-create.component.ts中为给定客户添加customers-create.component的列表。

但是由于循环依赖,我无法在我的Orders中导入customers-details.component模块。

那么:在这种情况下最好的方法是什么?我需要为我的orders-list.component创建一个共享模块吗?

2 个答案:

答案 0 :(得分:1)

  

两者都使用自己的服务(通过使用模块中的提供程序)

我认为这是一个错误的方法,您应该已经将服务(与逻辑服务)隔离开来处理请求(例如API服务),该请求将被定义一次并且可以在任何地方重用。

答案 1 :(得分:0)

您可以制作第三个模块,以组成所需的视图。这样一来,您就可以继续拥有特定于域的组件(ordercustomer),但可以创建不同但仍可重用的页面。

例如:

/pages
  /customer-view.component
  /orders-create.component.ts

您的customer-view.component将使用customers-details.componentorders-list.component创建您描述的完整视图。

您的orders-create.component.ts也应该包含在这个新模块中,因为它使用了Customer组件。

*免责声明:将模块命名为您想要的名称,这只是一个示例。