多个角度5个组件操纵一个中心组件

时间:2017-12-01 10:26:15

标签: javascript angular typescript gis openlayers

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

我已经尝试将@Output/@InputEventEmitter一起使用,这可行,但可扩展性可怕,因为最终将需要100个这些事件。有没有办法提供服务,可以将其注入每个相关组件,从而可以管理地图组件的操作?我看过主题/观察者,但很难想知道这是否是一个可行的选择。该应用程序预计会变得非常大,所以我希望从一开始就能完成。我知道这里有很多材料和帖子,但没有找到任何我觉得满足这个用例。

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

1 个答案:

答案 0 :(得分: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