相关疑难解决方法(0)

在app.config中注入服务

我想在app.config中注入一个服务,以便在调用控制器之前检索数据.我试过这样的:

服务:

app.service('dbService', function() {
    return {
        getData: function($q, $http) {
            var defer = $q.defer();
            $http.get('db.php/score/getData').success(function(data) {
                defer.resolve(data);            
            });
            return defer.promise;
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

配置:

app.config(function ($routeProvider, dbService) {
    $routeProvider
        .when('/',
        {
            templateUrl: "partials/editor.html",
            controller: "AppCtrl",
            resolve: {
                data: dbService.getData(),
            }
        })
});
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

错误:未知提供程序:来自EditorApp的dbService

如何纠正设置并注入此服务?

angularjs

168
推荐指数
6
解决办法
13万
查看次数

问题是将$ rootScope注入到Angular的配置中?

我在做:

myApp.config([
  '$httpProvider', '$rootScope', function($httpProvider, $rootScope) {
    $httpProvider.interceptors.push(function($q) {
      return {
        responseError: function(rejection) {
          var defer;
          defer = $q.defer();
          if (rejection.status === 401) {
            $rootScope.$broadcast('api-error', rejection);
          }
          defer.reject(rejection);
          return defer.promise;
        },
        response: function(response) {
          var defer;
          defer = $q.defer();
          console.log(response);
          if (response.status === 401) {
            $rootScope.$broadcast('api-error', response);
            defer.reject(response);
          } else {
            defer.resolve(response);
          }
          return defer.promise;
        }
      };
    });
  }
]);
Run Code Online (Sandbox Code Playgroud)

但我收到一个无法找到的错误$rootScope.我读了这个答案,它说要做一些奇怪的全局变量,这似乎是一个坏主意.那么如何在401状态下重定向到另一条路线呢?

angularjs

0
推荐指数
1
解决办法
9659
查看次数

标签 统计

angularjs ×2