Angularjs 需要服务中断解决

Angularjs 需要服务中断解决,angularjs,service,angular-ui-router,Angularjs,Service,Angular Ui Router,正在尝试访问解析中的服务: angular .module('app', ['ui.router', 'templates']) .config(function($stateProvider, $urlRouterProvider) { $stateProvider .state('home', { url: '/', templateUrl: 'app/views/home.html', controller: 'H

正在尝试访问解析中的服务:

angular
  .module('app', ['ui.router', 'templates'])
  .config(function($stateProvider, $urlRouterProvider) {
    $stateProvider
      .state('home', {
        url: '/',
        templateUrl: 'app/views/home.html',
        controller: 'Home as home',
        resolve: {
          productIndex: function (ProductService) {
debugger;
            // return ProductService.getProductsIndex();
          }
        }
      });
    $urlRouterProvider.otherwise('/');
  });
当上面的代码运行时,调试器永远不会命中,控制台中也不会出现任何问题。当ProductService作为参数被删除时,调试器会命中,但很明显,该服务无法调用。如果可能的话,我也希望只从服务中进行http调用

我已经四处寻找了一段时间,只看到了类似注射的工作示例。即使回顾以前的(正在工作的)项目,我也看不出与上面所做的有什么不同。我猜其他地方可能出了问题。任何帮助都会很好

为了完整起见:

function ProductService($http) {
  this.getProductsIndex = function() {
    // debugger;
    // return $http.get('/products');
  };

}

angular
  .module('app')
  .controller('ProductService', ProductService);

var-app=angular.module('*****')

app.service('ProductService', function() {
        return {
            getData: function($q, $http) {
                var defer = $q.defer();
                $http.get('****').success(function(data) {
                    defer.resolve(data);            
                });
                return defer.promise;
            }
        };
    });
阿布决议

resolve获取服务的字符串或返回要注入的值的函数

resolve: {
  productIndex: function (ProductService) {
   // your stuff goes here.
  }
}

这应该管用……)

现在您的服务正在注册为控制器。您应该将其注册为服务。e、 g

angular
  .module('app')
  .service('ProductService', ProductService);

您正在将服务注册为控制器。它应该注册为一项服务,而不是谢谢你这么多。。。轻微地embarrassing@rob如果你想正式回答,请随意。我会接受的。这就是解决办法。