angular - 演示应用程序中的提供根服务
问题描述
我正在开发一个 Angular6 库,用作许多内部网站的基础。它将主要提供服务,但也提供一些组件。
我想为这个库创建一个演示应用程序,它可以演示使用服务的各种方式,就像组件库演示使用组件的各种方式一样。
问题是这些服务被设计为在根目录中提供,使它们成为根目录中的单例。这使得很难有一个 Demo App 可以在不同的路由中显示不同的服务行为,而无需在浏览器中硬重启应用程序。
在应用程序(app.module)中使用时,我可以使用一种策略使我的库正常运行,但能够在演示应用程序中构造/销毁?
如果我创建一个 LibraryRootModule,然后在 LibraryRootModule 中设置要提供的所有内容,会有帮助吗?AOT 将如何处理它?我还担心使用providedIn root 的第三方依赖项可能无法与此策略一起很好地工作。
任何见解将不胜感激。谢谢。
解决方案
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
希望有帮助!
推荐阅读
- mysql - SQL动态地在一列中插入值列表
- firebase - .firebase/hosting 的目的是什么。ALPHANUM.cache
- javascript - Sidr 面板的打开和关闭动画不流畅,在智能手机上会抖动
- .net - 为什么 System.Security.Cryptography.Xml 不是 .NET Standard 2.0 的一部分?
- opengl - 如何使用 OpenGL 获取可见的顶点索引和面索引?
- algorithm - 如何从图表中获取 Voronoi 站点点
- typescript - Lodash _.reduce()“预期 2-3 个参数,但在 TypeScript 中得到 2”错误
- ruby - Select() 方法和 option() 方法的工作方式不同
- c - 关于C表达式的问题
- r - 如何根据给定R中的列的条件动态创建特定数量的列