首页 > 解决方案 > 演示应用程序中的提供根服务

问题描述

我正在开发一个 Angular6 库,用作许多内部网站的基础。它将主要提供服务,但也提供一些组件。

我想为这个库创建一个演示应用程序,它可以演示使用服务的各种方式,就像组件库演示使用组件的各种方式一样。

问题是这些服务被设计为在根目录中提供,使它们成为根目录中的单例。这使得很难有一个 Demo App 可以在不同的路由中显示不同的服务行为,而无需在浏览器中硬重启应用程序。

在应用程序(app.module)中使用时,我可以使用一种策略使我的库正常运行,但能够在演示应用程序中构造/销毁?

如果我创建一个 LibraryRootModule,然后在 LibraryRootModule 中设置要提供的所有内容,会有帮助吗?AOT 将如何处理它?我还担心使用providedIn root 的第三方依赖项可能无法与此策略一起很好地工作。

任何见解将不胜感激。谢谢。

标签: angularservicedemo

解决方案


1)也许你应该使用 forRoot() 模式:https ://angular.io/guide/singleton-services#the-forroot-pattern ;

2) 可能你应该在一个网站上使用不同的 Angular 应用程序。并使用平台注入器:https ://blog.angularindepth.com/angular-dependency-injection-and-tree-shakeable-tokens-4588a8f70d5d

希望有帮助!


推荐阅读