Browserify AngularJS模块工厂方法扩展了另一种工厂方法

时间:2016-10-14 23:06:26

标签: angularjs dependency-injection browserify factory

我目前正在尝试在现有应用程序上实现Browserify。

我有一个要求,我有一个包含一堆标准功能的BaseService,例如在请求等上设置标准标题

在我的工厂中,我使用loadash来扩展BaseService。为此,我需要在尝试扩展它的任何工厂中引用BaseService。现在我已经开始使用browserify,我无法弄清楚如何通过这种依赖。

我在下面添加了示例代码。

模块声明:

'use strict';
var angular = require('angular');

module.exports = angular.module('todoApp.services', [require('../secure').name])
    .factory('AuthService', ['$q', 'ConsumerConfig', require('./auth-service')])
    .factory('BaseWebService', ['$http', '$q', 'Encryption', 'nativeCrypto', require('./base-web-service')]);

AuthService:

'use strict';
var _ = require('lodash');

module.exports = function($q, ConsumerConfig) {
    return _.extend({
        config: ConsumerConfig,

        authenticate: function (options) {
            var deferred = $q.defer();

            this.callService({
                user: options.user,
                url: "/AuthenticateUser",
                type: "GET"
            }).then(function (response) {
                deferred.resolve(response.data.userAuthResponse.responseMessage.Token);
            }, function (error) {
                deferred.reject(error);
            });

            return deferred.promise;
        }
    }, BaseWebService);
};

我希望使用DI来注入依赖项,但是当我尝试这个时,我会不断收到未知的提供程序错误。有谁知道我怎么能这样工作?

1 个答案:

答案 0 :(得分:0)

对于任何寻找的人 - 我通过创建一个新的" Core"来解决这个问题。模块然后让我的服务模块需要核心模块。

这样一切都以正确的顺序加载