首页 > 解决方案 > 在 Angular 中捆绑服务

问题描述

我正在尝试找到一种将多种服务捆绑在一起的好方法。

我有几个与我的后端通信的服务(由我的后端团队提供),我希望它们可以通过单个服务访问,例如:BackendService,它将是一个容器,例如:FooService、BarService 和 DogService。

理想情况下,我可以直接调用这些服务中的函数,例如:backendService.dogBark()<- 这个函数在 dogService.

我已经尝试过这Object.assign条路线,并且我研究了 Typescript mixins,但这些选项不起作用/不是我所追求的。

在 BackendService 中实现功能也不是一种选择,因为我们的后端正在增长。

到目前为止,我发现的“最佳”方法是将要捆绑在一起的服务简单地注入到我的 BackendService 中,然后在需要的地方注入 BackendService,这为我提供了后一种选择,我可以在其中进行如下调用:backendService.dogService.dogBark()

正如我所说,一个宜居的解决方案,但我希望有人能够指出我更优雅的东西。

任何指导/提示将不胜感激。

标签: angulartypescriptangular2-servicesangular-services

解决方案


服务用于设置通信 b/w 组件、指令或模块。您可以采用最适合您的任何方法。我建议您strategy design pattern根据用户的选择选择动态服务。

当然,您需要编写一个逻辑来为每个输入选择服务。您应该检查链接以了解如何实现它。


推荐阅读