0
angular.module("ABC.services").service("configService", [
  'loggerService', function(logger, $http) {
    debugger;
    return this.get = function(onError, onSuccess) {
      return $http.get("/api/config/").success(function(config) {
        logger.debug('loaded config');
        return onSuccess(config);
      }).error(onError);
    };
  }
]);

(より複雑なロガーがあります$log)

$http依存関係のリストに「$http」を含めない限り、デバッガー行で未定義であることがわかりました。ドキュメントでは、このユース ケースについては説明していません。ネイティブ サービス インジェクションの例は次のようになります。

angular.module('myModule', [], function($provide) {

$provide自分のサービスの 1 つも使用している場合、依存関係として宣言する必要がありますか? サービスの自動注入に頼ることができるとき$と、それらを明示的に宣言する必要があるときについて、私は本当に混乱しています。

4

1 に答える 1

0

モジュールを使用する場合にのみ、モジュールを注入する必要があります。コードで使用しない場合は、注入する必要はありません。(あなたが参照した例では、コードは を使用しているため、$provideそれが注入されています。)

配列表記を使用してモジュールを挿入する場合、配列で宣言されたモジュールが関数のパラメーターと一致する必要があります。例えば:

angular.module("ABC.services").service("configService", [
  'loggerService', '$http', function(logger, $http) {

または配列表記を使用せずに

angular.module("ABC.services").service("configService", function(loggerService, $http) { ...

配列表記を使用する利点は、縮小を防ぐことです。

于 2013-09-13T01:21:37.747 に答える