在angularJS中添加多个工厂

时间:2016-12-12 11:03:50

标签: javascript angularjs

如何在angularJS中添加多个因子

它显示我错了

(function() {
'use strict';

angular
    .module('projectsEvaluationApp')
    .factory('EvaluationsService', EvaluationsService);
EvaluationsService.$inject = ['$resource'];

function EvaluationsService ($resource) {
    var service = $resource('api/evaluations/:id', {}, {
        'get': {
            method: 'GET',
            isArray: true
        },
        'query': {
            method: 'GET',
            isArray: true,
        }
    });

    return service;
}
  .factory('VisitService', VisitService);
})();

4 个答案:

答案 0 :(得分:0)

您可以将应用分配给变量并使用它来创建多个Factories/Directives如下所示:

(function() {
    'use strict';

    app = angular.module('projectsEvaluationApp');
    app.factory('EvaluationsService', EvaluationsService);
    EvaluationsService.$inject = ['$resource'];

    function EvaluationsService($resource) {
        var service = $resource('api/evaluations/:id', {}, {
            'get': {
                method: 'GET',
                isArray: true
            },
            'query': {
                method: 'GET',
                isArray: true,
            }
        });

        return service;
    }
    app.factory('VisitService', VisitService);
})();

答案 1 :(得分:0)

这是语法错误。 VisitService必须声明如下。

(function() {
'use strict';

    angular
        .module('projectsEvaluationApp')
        .factory('EvaluationsService', EvaluationsService) // factory one
        .factory('VisitService', VisitService); // factory two

    EvaluationsService.$inject = ['$resource'];

    function EvaluationsService ($resource) {
        var service = $resource('api/evaluations/:id', {}, {
            'get': {
                method: 'GET',
                isArray: true
            },
            'query': {
                method: 'GET',
                isArray: true,
            }
        });

        return service;
    }

    })();

答案 2 :(得分:0)

您可以将多个工厂添加到angular.module

通过指定依赖项创建一次角度模块。

var module = angular.module('moduleName', [])`

进一步将工厂或控制器添加到同一模块,可以将模块作为

var module = angular.module('moduleName')

以下代码段将为您效劳。

    angular.module('projectsEvaluationApp')
        .factory('EvaluationsService', function($resource) {
            var service = $resource('api/evaluations/:id', {}, {
                            'get': {
                                method: 'GET',
                                isArray: true
                            },
                            'query': {
                                method: 'GET',
                                isArray: true,
                            }
                        });

            return service;
        });

    angular.module('projectsEvaluationApp')
      .factory('VisitService', function() {});

答案 3 :(得分:0)

其他答案中已经给出了解决方案。

提示: 另一种将服务注入另一种服务的方式(而不是使用$ inject):

app.factory('EvaluationsService', ['$resource', EvaluationsService]);

function EvaluationsService($resource) {...}