如何从一个角度库与另一个角度库通信?

时间:2019-04-03 04:31:10

标签: angular microservices angular-library micro-frontend

我有这个基本的应用程序,它基本上使用了库的概念。

我有2个名为 Lib1 lib2 的库根据它们所服务的微服务进行了分组。

现在我将这些库导入到主应用程序即 App1 中,到现在为止。

现在,Lib1具有组件 UploadComponent ,该组件负责上传所有类型的媒体文件视频,图像,文档等。当在App1中单独使用组件选择器或通过路线加载。

Lib2具有一个需要上传功能的组件 CreateComponent ,因此我导入了 UploadComponent 并在模式窗口中调用它。但是上传完成后,该组件会发出一些消息,但由于 Createcomponent UploadComponent 位于不同的库中,因此我无法捕获到消息。

有人知道如何处理这种情况吗?

1 个答案:

答案 0 :(得分:1)

有两种方法可以通过两个不同的微型应用程序进行通信,也可以称为角度库。 请按照以下步骤操作:-

  1. 假设您有两个图书馆项目在一个有角度的应用程序[用户和员工]下工作
  2. 在staff.module.ts中,您需要在导入数组中导入UsersModule。
  3. 然后,您可以在员工组件HTML中使用HTML,您可以在其中将数据传递给用户应用,如下所示
  4. <users [listingFilterData]="filterObject"></users>
  5. 在用户组件ts文件中,可以使用@Input指令获取“ listingFilterData”对象数据并处理用户组件中的数据,结果将在人员组件下进行更新。

第二种方法是从一个组件发出事件,该事件可以侦听另一组件或库模块。

从一个组件发送事件:-

 document.dispatchEvent(
  new CustomEvent(name, { detail: body })
);

将事件监听到另一个组件

  document.addEventListener(name, handler);

希望有帮助。