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如果我还使用自己的一项服务,我是否需要声明为依赖项?我真的很困惑何时可以依赖服务的自动注入$以及何时必须明确声明它们。

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 回答