2016-10-14 58 views
0

我目前正試圖通過現有的應用程序實現Browserify。Browserify AngularJS模塊工廠方法擴展另一種工廠方法

我有一個要求,我有一個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注入的依賴,但是當我嘗試這個,我不斷收到未知的提供程序錯誤。有誰知道我如何才能使這個工作?

回答

0

對於任何人來說 - 我通過創建一個新的「Core」模塊來解決這個問題,然後讓我的服務模塊需要核心模塊。

這樣一切都按正確順序加載