AngularJS中的“Namespacing”服务

AngularJS如何处理服务名称之间的冲突? 例如,如果我已经声明了两个模块,每个模块都包含一个名为“foo”的服务。 如果我想创build一个可重用的模块或者想要避免与其他第三方模块的冲突,那么“命名空间”服务将会是一个好的方法吗?

到目前为止,AngularJS不处理服务的命名空间冲突,所以如果你有两个不同的模块,并且命名方式相同,并且在你的应用中包含了两个模块,那么只有一个服务可用。

目前最好的select是用一个自定义前缀为服务名称加前缀,例如:

angular.module('myprefix_mymodule',['dep1', 'dep2']).factory('myprefix_MyService', ...)

正如pkozlowski所指出的,他们没有。 你可以手动为你的所有服务添加一个前缀(这有点烦人),或者我写了一个hack命名空间给你。 https://github.com/callmehiphop/angular-namespacer