想象一下,您在核心模块中创建了一个服务,如下所示:
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
单例加载模块并添加该模块的内容对象?
您可以更改延迟加载的模块中组件的单例,但是我正在模块级或模块加载中的某种事件侦听器中进行更改。