$ http无法在$ stateProvider中解析

时间:2015-11-27 11:15:19

标签: angularjs ionic

我正在尝试获取路由(app.units)的数据(单位)。这是代码。

  .state('app.units', {
    url: '/units',
    views: {
      'menuContent' :{
        templateUrl: "templates/units.html",
        controller: 'UnitCtrl',
        resolve:{
          units: function($stateParams, ExamService, $rootScope, $http){
            return $http.get(ApiEndpoint.url +'/units.json?auth_token='+$rootScope.globals.currentUser.userToken)
              .success(function(response){
                //console.log('hello');
                return response.data;
              })
          }
        }
      }
    }
  })

Fails to resolve without errors End point works in Advanced Rest Client

正如您所看到的那样无法解决,在控制台中没有显示任何错误,并在我的离子应用程序中为我提供了一个空白页面,但该端点与Advanced Rest Client for chrome配合使用。我一直坚持这个年龄,有人可以想出来。

1 个答案:

答案 0 :(得分:0)

嘿,我刚刚重构了你的代码。试试吧

.state('app.units', {
    url: '/units',
    views: {
      'menuContent' :{
        templateUrl: "templates/units.html",
        controller: 'UnitCtrl',
        resolve:{
          units : ['$stateParams','$q','ExamService','$rootScope', '$http',function ($stateParams,$q,ExamService,$rootScope, $http) {
            var deferred = $q.defer();
            $http.get(ApiEndpoint.url +'/units.json?auth_token='+$rootScope.globals.currentUser.userToken)
              .success(function(response){
                //console.log('hello');
                if(response!=undefined)
                  deferred.resolve(response);
                else
                  deffered.reject();
                })
             return deferred.promise;
           }]
        }
      }
    }
  })