У меня есть эта скрипка, которая создает функциональный пример вопроса.
Мое понимание module.factory и module.service заключается в том, что предоставляемая вами сервисная функция возвращается путем вызова return new serviceFunction, когда вызывается фабричная функция и предоставляется возвращаемое значение. Я думал, что одним из следствий этого было то, что вы получите разные экземпляры фабричного результата.
Я создал эту фабрику:
app.factory('fact', function() {
return Math.random();
});
а то два контроллера с завода вкалывают. Затем я сослался на результат фабричного метода как таковой:
app.controller('test1Controller', ['$scope', 'fact', function ($scope, fact) {
$scope.fact = fact;
}]);
app.controller('test2Controller', ['$scope', 'fact', function ($scope, fact) {
$scope.fact = fact;
}]);
Я ожидал, что результатом будут два разных случайных числа, но они одинаковы. Как это возможно, если фабричный метод вызывается дважды?