可以在bootstrap之前使用自定义Angular服务吗?

Dar*_*ren 4 angularjs angularjs-service angularjs-bootstrap

我有一个服务:

angular.module('USC').service('TemplateService', function() {});
Run Code Online (Sandbox Code Playgroud)

我想在手动引导我的Angular项目之前使用它:

angular.bootstrap(document, ['USC']);
Run Code Online (Sandbox Code Playgroud)

这可能吗?我知道我可以调用var service = angular.bootstrap().get(); 对于Angular提供的服务,但是如何在模块初始化之前调用自定义服务?

gka*_*pak 9

如果拥有与应用程序本身将使用的服务实例不同的服务实例,则可以实现您想要的效果:

angular.injector(['ng', 'yourApp']).get('SomeService').doStuff();
Run Code Online (Sandbox Code Playgroud)

另见这个简短的演示.
正如您所看到的那样,服务被重新实例化(因此计数器从0开始)以便在Angular应用程序中使用.

  • 如果要在引导程序后使用相同的服务实例,可以将其设置为yourApp.constant('SomeService',SomeService); (2认同)