2016-10-14 14 views
0

現在、既存のアプリケーションに対してBrowserifyを実装しようとしています。Browserify AngularJSモジュールのファクトリメソッドが別のファクトリメソッドを拡張する

私はBaseServiceに標準機能の束を含む必要があります。要求時に標準ヘッダーを設定します。

私の工場では、loadServiceを使って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

私は新しい "コア"モジュールを作成し、サービスモジュールにコアモジュールを必要とすることでこれを解決しました。

このようにすべてが正しい順序でロードされました

関連する問題