【问题标题】:Multiple angular 5 components manipulate one central component多个角度 5 组件操纵一个中心组件
【发布时间】:2017-12-01 10:26:14
【问题描述】:

我目前正在开发一个Angular 5 GIS 项目,该项目专注于包含openlayers 地图的中心组件。我基本上需要所有其他组件,才能操纵这张地图。因此,我需要一个干净的解决方案让其他组件调用这个中心组件中的功能,例如。更改地图上的位置、更改图层等。

我尝试过将@Output/@InputEventEmitter 一起使用,这很有效,但是由于最终需要100 个这样的事件,所以规模非常大。有没有办法制作一个服务,它可以注入到每个相关的组件中,进而可以管理对地图组件的操作?我已经查看了主题/可观察的内容,但是很难弄清楚这是否是一个可行的选择。该应用程序预计会变得非常大,所以我希望从一开始就这样做。我知道有很多关于这方面的材料和帖子,但还没有找到任何我觉得满足这个用例的内容。

任何有角度的向导有一些好的建议吗?非常感谢!

【问题讨论】:

  • 将地图对象放入服务中,然后将服务注入到每个组件中。主要组件设置地图,而其他组件获取它。

标签: javascript angular typescript gis openlayers


【解决方案1】:

这个问题是 facebook 面临的,因此他们提出了 Flux 架构,你可以使用 Redux 和 Angular 来解决这个问题。它适用于应用程序中的这种特定用例。

Redux 允许您在应用程序中拥有单一状态,从而减少事件循环等。

http://blog.ng-book.com/introduction-to-redux-with-typescript-and-angular-2/

https://www.uruit.com/blog/2017/05/04/using-redux-angular/

https://dzone.com/articles/why-should-you-be-using-redux-with-angular

【讨论】:

  • 阅读了您的优秀链接后,这似乎是一个解决方案。我现在会接受这个答案,并返回一个我已经实现了 redux 并确定知道的状态。尽管如此,还是一本出色的阅读材料和一个很好的了解工具。谢谢!
  • @Hjorth 请在实施后及时更新我的​​广告。很高兴看到这一点。你有 GIT 存储库要分享吗?当我在 Angular 5 中寻找一个带有 openlayers 的开源 GIS 项目时..
猜你喜欢
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
  • 2017-10-19
  • 2018-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-12
相关资源
最近更新 更多