在引导Ng2之后将服务添加到应用程序范围

时间:2015-11-23 10:51:35

标签: angular angular-services

我正在构建一个Angular2应用程序,我需要从众多不同的服务加载它加载子应用程序。如果我可以在运行时动态地将一个服务添加到应用程序范围,即在引导已经发生但是我很难找到一个实用的方法之后,这将是理想的。

任何指针都会非常感激

2 个答案:

答案 0 :(得分:1)

请检查

https://angular.io/docs/ts/latest/api/core/Injector-class.html

您可以通过resolveAndCreate注册新服务。

以下是对DI如何工作的一个很好的解释:)

http://blog.thoughtram.io/angular/2015/08/20/host-and-visibility-in-angular-2-dependency-injection.html

答案 1 :(得分:0)

仅在实例化依赖于它的组件时实例化服务 - 因此从这个意义上说,它们是动态创建的,并且没有预先创建应用程序中所有服务的引导过程。我无法想象一个组件不知道它的依赖关系的场景 - 所以如果你用正常的服务依赖关系编写你的组件,Angular2会在需要时将这些服务实例化。

另外,Angular2中作用域的工作方式与Angular.js不同 - 我不太清楚你在这个上下文中的应用范围是什么意思。在一天结束时,服务只是由注入器实例化的类,您可以让框架为您注入它们,如果需要,可以直接访问注入器(从{angular2 / angular2'导入{injector}}或者用new()自己实例化一个类的实例 - 但是这会破坏依赖注入的目的,即删除依赖实例化到框架上的责任。