我们正在使用 Angular 构建一个 cms 驱动的应用程序框架。我们提供多个包,客户可以使用这些包来进一步定制用户界面或逻辑。出于这个原因,组件会将其逻辑委托给服务,目标客户可以提供自定义服务(我们正在避免组件继承)。
组件是动态放置的,并使用唯一的数据集进行初始化,保存 CMS 数据。提供的服务将从组件注入器继承此数据。这很好用,但是,当提供自定义服务(使用InjectionToken
)时,我们面临 2 个问题:
- 服务不再是非单例的,多个组件实例将提供同一个自定义服务
- 该服务将不再从组件继承数据值,因为它被注入到不同的范围内
还有其他人遇到过类似的架构挑战吗?