在模块导入时使用不同的服务

Use a different service at module import

这是我的问题的一个简单实现示例:
https://stackblitz.com/edit/angular-gqy1lk

我有两个页面导入 test-generic 模块,其中提供的特定服务(使用 ForChild)继承了 TestGenericService 服务.

我在每个服务中使用 testMethod 来显示在哪个页面模块中调用了组件 Generic

正如您在 stackblitz 预览中看到的 "page1" link 显示 Page2 而不是 "Page1" 字符串。 page2 link 显示正确的字符串 Page2.

似乎 angular 只接受 TestGenericModule 的最后一个 forChild 调用,在这种情况下 Page2modulePage1Module

之后导入

我在提供服务时使用 ForChild 有什么问题?

是否可以通过提供特定的注入服务将模块导入到另一个模块中,仅用于导入的模块范围?

谢谢。

好的,我找到了解决方案:

https://stackblitz.com/edit/angular-gqy1lk

我只需要通过使用 forChild 来定义我想在组件级别(提供程序)而不是模块级别使用哪个提供程序。

现在我的 TestGeneric 组件所在的组件(Page1 或 Page2)的服务注入是正确的。