在AngularJStesting中,_servicename_中的下划线是什么意思?

在下面的示例testing中,原始的提供者名称是APIEndpointProvider,但是对于注入和服务实例化,约定似乎是必须使用包装它的下划线注入。 这是为什么?

'use strict'; describe('Provider: APIEndpointProvider', function () { beforeEach(module('myApp.providers')); var APIEndpointProvider; beforeEach(inject(function(_APIEndpointProvider_) { APIEndpointProvider = _APIEndpointProvider_; })); it('should do something', function () { expect(!!APIEndpointProvider).toBe(true); }); }); 

什么是约会我错过了一个更好的解释?

下划线是一个便利的技巧,我们可以用它来注入一个不同名称的服务,这样我们可以在本地分配一个与服务同名的本地variables。

也就是说,如果我们不能做到这一点,我们就不得不在本地使用其他的名称:

 beforeEach(inject(function(APIEndpointProvider) { AEP = APIEndpointProvider; // <-- we can't use the same name! })); it('should do something', function () { expect(!!AEP).toBe(true); // <-- this is more confusing }); 

在testing中使用的$injector能够删除下划线,给我们我们想要的模块。 除了让我们重复使用同一个名字,它什么也不

阅读更多的Angular文档