我正在构建一个Angular2应用程序,我需要从众多不同的服务加载它加载子应用程序。如果我可以在运行时动态地将一个服务添加到应用程序范围,即在引导已经发生但是我很难找到一个实用的方法之后,这将是理想的。
任何指针都会非常感激
答案 0 :(得分:1)
请检查
https://angular.io/docs/ts/latest/api/core/Injector-class.html
您可以通过resolveAndCreate注册新服务。
以下是对DI如何工作的一个很好的解释:)
答案 1 :(得分:0)
仅在实例化依赖于它的组件时实例化服务 - 因此从这个意义上说,它们是动态创建的,并且没有预先创建应用程序中所有服务的引导过程。我无法想象一个组件不知道它的依赖关系的场景 - 所以如果你用正常的服务依赖关系编写你的组件,Angular2会在需要时将这些服务实例化。
另外,Angular2中作用域的工作方式与Angular.js不同 - 我不太清楚你在这个上下文中的应用范围是什么意思。在一天结束时,服务只是由注入器实例化的类,您可以让框架为您注入它们,如果需要,可以直接访问注入器(从{angular2 / angular2'导入{injector}}或者用new()自己实例化一个类的实例 - 但是这会破坏依赖注入的目的,即删除依赖实例化到框架上的责任。