38

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

4

2 回答 2

40

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

目前最好的选择是使用自定义前缀为服务名称添加前缀,例如:

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

于 2013-02-16T11:00:06.520 回答
8

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

于 2013-10-23T17:54:26.360 回答