Зависимость от службы/фабрики с тем же именем из другого модуля

Я пытаюсь создать службу в модуле, которая зависит от другой службы в другом модуле, но службы имеют одно и то же имя. Рассмотрим следующий пример:

angular.module('module1',[]).factory('log', [function () {
    return { show: false, msg: "" };
}]);

angular.module('module2', ['module1']).factory('log', ['log', function (log) {
    return { show: false, msg: log.msg + "" };
}]);

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

Когда я реализую приведенный выше код, получаю: Ошибка: [$injector:cdep] Найдена циклическая зависимость: журнал

Я понимаю, что службы являются одноэлементными в angular [1], а внедрение зависимостей следует за последним. соглашение wins [2]. Мне кажется, что в «модуле2» «журнал», который вводится, сам по себе является циклической зависимостью. Как ввести «журнал» из «module1»?


person mxp    schedule 18.03.2014    source источник
comment
Обязательно ли вести журнал имен для обеих ваших служб?   -  person BKM    schedule 18.03.2014
comment
Да, обе службы должны иметь одинаковое имя. Я хочу расширить функциональность «module1» и не вносить изменения в «myapp», кроме обновления зависимостей. Я знаю, что наличие разных имен служб предотвратит эту проблему, таково мое приложение на данный момент.   -  person mxp    schedule 18.03.2014
comment
Я думаю, что это недостаток angular, если нет возможности сослаться на службу с полным именем (что-то вроде имени модуля + имя службы).   -  person mostruash    schedule 19.04.2015


Ответы (1)


Старый вопрос, но я решил его, используя декораторы.

person mxp    schedule 24.02.2015