AngularJS: один сервис, несколько модулей

0

Это вопрос о модулях и сервисах AngularJS и о том, как их определить.

  1. Приложение может состоять из нескольких модулей
  2. Услуга позволяет использовать часто используемый код, который будет учитываться и использоваться несколькими модулями
  3. Служба (обычно) определяется с помощью: angular.module('module1'). Factory ('serviceA', function() {...});

Если все это верно, то почему определение serviceA включает ссылку на module1? Не следует ли игнорировать любые модули, которые хотят его использовать?

Если я создавал модуль2, и я ссылался на serviceA.js, чтобы получить доступ к вышеуказанной службе, он сказал бы мне, что модуль1 не определен.

На мой вопрос, как я могу создать набор независимых модулей и получить доступ ко всем глобальным сервисам? Во всех примерах, которые я видел, служба тесно связана с конкретным модулем.

Теги:
module
service

1 ответ

0

Метод factory() - это метод на модуле, поэтому для его вызова необходим экземпляр модуля. По сути, в этом заявлении говорится, что вы хотите, чтобы этот завод был определен на этом конкретном модуле.

Если вам нужен модуль 1 в том, что используется в модуле2, тогда модуль2 должен объявить зависимость от модуля1:

angular.module('module2', ['module1']);

Одна вещь, что написание модульных тестов научит вас очень быстро, состоит в том, что чем больше мест используется что-то, тем важнее поставить его в модуль. Если вы попытаетесь рассматривать его как "глобальный", потому что он используется во многих местах, это означает, что вы должны загружать все приложение только для использования тех служб, которые в основном используются повсюду.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню