这是我的问题的一个简单实现示例:
https://stackblitz.com/edit/angular-gqy1lk
我有两个页面,分别导入 test-generic 模块和一个特定的提供的服务(使用ForChild),该服务继承了 TestGenericService 服务。
我在每个服务中使用 testMethod 来显示在哪个页面模块中调用了组件 Generic 。
您可以在 stackblitz 预览中看到,“ page1”链接显示为 Page2 ,而不是“ Page1”字符串。并且page2链接显示正确的字符串 Page2 。
似乎angular只接受了 TestGenericModule 的最后一个 forChild 调用,在这种情况下,当 Page2Module 在 Page1Module < / b>
我在提供服务时使用ForChild有什么问题?
是否可以通过提供要注入的特定服务来将模块导入另一个模块中,仅适用于导入的模块范围?
谢谢。
答案 0 :(得分:0)
好,我找到了解决方法:
https://stackblitz.com/edit/angular-gqy1lk
我只需要使用forChild定义要在组件级别(提供者)而不是模块级别使用的提供程序。
现在,服务注入对于我的TestGeneric组件来自哪个组件(Page1或Page2)是正确的。