2013-05-22 9 views
8

別のモジュールの1つのモジュールでファクトリを呼び出す際に問題があります。私はangular.js + require.jsを使用しています。私はエラーがproviderServiceがないと言ってましたモジュール1からモジュール2にproviderServiceを呼び出そうとするとモジュールファクトリをAngular.jsの別のモジュールから呼び出す方法は?

define(['angular', 'app/admin/app.admin', 'app/admin/account/services'], function (angular, app, services) { 
    app.controller('MainCtrl', ['$scope', 'providerService', function ($scope, providerService) { 
    $scope.showMe = false; 
    $scope.provider = providerService.Providers; 
    }]); 


    return app; 
}); 

モジュール2

define(['angular', 'app/admin/config/index'], function (angular) { 
    'use strict'; 

    var service = angular.module('app.admin.account.services', []); 

    service.factory('providerService', ['app.admin.config', 
    function (config) { 
     var providers = [ 
     { name: 'google+', url: config.AUTH_URL + '/google' }, 
     { name: 'facebook', url: config.AUTH_URL + '/facebook' } 
     ]; 
     return { 
     Providers: providers 
     }; 
    } 
    ]); 

    return service; 
}); 

: はここに私のコード モジュール1です。誰かが私がここで間違ったことを教えてもらえますか?しかし、用語「モジュール」

乾杯

+2

アプリケーションモジュールはどこに定義されていますか?このコードではありません。あなたがまだ持っていなければ、 'app.admin.account.services'と' app'の依存関係を宣言する必要があります –

答えて

16

一緒にRequireJSとAngularJSを使用することは完全に罰金ですが、両者の間に別の意味を持っており、それが依存関係に来るとき、少し混乱しています。

RequireJSでは、「モジュール」は、コードをカプセル化する典型的なJavaScriptファイルです。 Dependencyを他のモジュールを依存として渡し、正しいスクリプトのロード順序を保証するために、RequireJSを使用して依存関係を定義します。

AngularJSでは、「モジュール」という用語は、具体的には、コントローラ/サービス/指令などの宣言のコンテナであるAngularJSモジュールを意味します。

スクリプトファイルの順序と依存関係を定義するには、RequireJSを使用します。また、あなたのモジュールが依存している "角モジュール"をAngularに伝える必要があります。これは基本的に、すべてのコントローラ/サービス/指令をそれとともにインポートします。 「アプリ/管理/ app.admin」あなたは2番目のパラメータとして「app.admin.account.services」モジュールに渡すことによって、あなたのAngularJSモジュールの依存関係を定義することを確認して

例えばその後、依存性注入のためのあなたのproviderService利用可能になって、あなたのメインモジュールに「app.admin.account.services」モジュールをインポートします

var app = angular.module('app.admin', ['app.admin.account.services']); 

関連する問題