Подтвердить что ты не робот

Услуги "Namespacing" в AngularJS

Как AngularJS обрабатывает конфликты между именами сервисов? Например, если я объявил два модуля, каждый из которых содержит службу под названием "foo". Что было бы хорошим способом для служб "namespace", если я хочу создать модуль многократного использования или избежать конфликтов с другими сторонними модулями?

4b9b3361

Ответ 1

На сегодняшний день AngularJS не обрабатывает конфликты пространства имен для сервисов, поэтому, если у вас есть 2 разных модуля с сервисом одинаковым образом, и вы включаете оба модуля в свое приложение, только одна служба будут доступны.

На данный момент лучшим вариантом является префикс имен служб с пользовательским префиксом, например:

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

Ответ 2

Как отмечено pkozlowski, они этого не делают. Вы можете вручную добавить префикс ко всем вашим услугам (что раздражает), в качестве альтернативы я написал взломать пространство имён для вас. https://github.com/callmehiphop/angular-namespacer