我正在开发Angular6库,以用作许多内部网站的基础。它将主要提供服务,但还将提供一些组件。
我想为此库创建一个演示应用程序,以演示使用服务的各种方式,就像组件库演示使用组件的各种方式一样。
问题在于,这些服务被设计为在根目录下提供,从而使它们在根目录下成为单例。这使得很难在没有在浏览器中硬启动该应用程序的情况下就可以在不同路线上显示不同服务行为的演示应用程序。
是否有一种策略可以使我的库在应用程序(应用程序模块)中使用时正常运行,但能够在演示应用程序中构建/销毁?
如果创建了LibraryRootModule,然后将所有内容设置为LibraryRootModule,这会有所帮助吗? AOT将如何处理?我还担心,使用provideIn 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
希望有帮助!