【问题标题】:Shared data between Angular ElementsAngular 元素之间的共享数据
【发布时间】:2018-11-21 18:36:23
【问题描述】:

我正在研究 Angular Elements,并考虑将我们的 Angular 组件生成到 Angular Elements 中,以便在 Angular 应用程序之外使用。

假设我有一个 Angular 4 应用程序,它导入两个不同的 Angular 元素(内置在 Angular 7 中)并将它们呈现在同一页面上,并在我的 Angular 4 组件中实例化一个服务。该服务包含我想要传递到我的 Angular 元素中的数据,因为 Web 组件只接受字符串作为属性(输入),有没有什么好的方法可以在服务实例之间共享数据/将服务实例传递到 Angular 元素中?

【问题讨论】:

  • 有什么好的方法吗...?到目前为止,你尝试过什么方法?
  • 微前端应用的一种方式。那是没有限制。检查Singale SPA 示例。 link
  • 我的建议是创建一个可重用的 api 来像观察者模式一样在两个应用程序之间进行通信。我创建了一个通用库,使用 rxjs 主题在两个微前端应用程序(Angular、Vue、Angular Js)之间并排通信
  • 这里是代码stackoverflow.com/questions/53397918/…,您也可以在您的案例中使用相同的库

标签: angular angular7 angular-elements


【解决方案1】:

根据有关角度元素的最新讨论,您将能够在创建元素时传入注入器。

这个共享注入器将充当不同元素之间的桥梁。

【讨论】:

【解决方案2】:

您正在尝试在 Angular 应用程序中使用两个 Angular 自定义元素。 在这个场景中应用微前端的原理,两个应用程序应该尽可能独立。今天你使用 Angular Element 明天你可能会使用使用其他技术创建的 Web 组件(自定义元素),即使 Angular 的某些支持功能确实解决了这个问题,你可能会永远被 Angular Elements 卡住并且无法使用使用其他技术。

无论选择何种解决方案,它都应该尽可能具有可扩展性和稳健性。

我的建议是使用以下方法之一:

1.通过事件总线进行通信。 2. 传递路由参数,这些参数可用于从后端获取数据。 3.集中式全球存储(Redux、NGRX、MOBx)

一切顺利。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-07
    • 2018-09-16
    • 2019-08-04
    • 2023-03-10
    • 2020-08-27
    • 2020-03-14
    • 2018-09-27
    • 2018-10-12
    相关资源
    最近更新 更多