首页 > 解决方案 > Angular:如何在延迟加载的模块中改变核心模块服务?

问题描述

想象一下,您在核心模块中创建了一个如下所示的服务:

export interface Content {
  name: string;
  content: string;
}

@Injectable()
export class ContentService {
  contents: Array<Content> = [];

   getContent(name: string) {
     return this.contents.filter(content => content.name === name)[0];   
   }
}

这个想法是您将拥有多个延迟加载的模块,并且在每个模块中,一个组件将调用此服务单例,传入其模块的名称,并获取其相关内容。

现在,您可以Content在核心模块或应用程序模块中为该服务添加工厂中的所有对象,但是有没有办法改变每个延迟加载模块中ContentService的单例并添加该模块的内容对象?

您可以更改延迟加载模块中组件中的单例,但我希望在模块级别或模块加载中的某种事件侦听器中执行此操作。

标签: angularangular6

解决方案


推荐阅读