如何从角度返回的服务访问值对象?

时间:2015-05-23 05:53:51

标签: javascript angularjs ionic

我有一个返回实际数据的服务。但是当我在控制器中调用它时,返回数据结构有点令人困惑。

这是我的工厂:

app.factory("studentService", ['$http','$q','$localstorage','$state', 
    function($http,$q,$localstorage,$state) {

 return{
      getStudentsFrom : function(index){
                 return $http.get(app.baseUrlServer + app.getStudentsUrl + '/getbasedonindex/'+index)
                    .then(function(response){
                        if (response.data) {
                            return response.data;
                        } else {
                            // invalid response
                            return $q.reject(response.data);
                        }
                    },function(response){
                        // invalid response
                        return $q.reject(response.data);
                    });
            }
 }

}]);

这是我的控制器,称之为

var app_ctrl = angular.module('app.controllers');

app_ctrl.controller('BrowseController',['$scope','$state', 'studentService', '$localstorage', 
	function($scope,$state, studentService, $localstorage, $timeout) {
  
   $scope.noMoreItemsAvailable = false;
 // $scope.NumOfRows=studentService.getNumOfRows();

  $scope.students = [];
  $scope.counter=1;

console.log(studentService.getStudentsFrom($scope.counter));

  

}]);

这就是我得到的。

Promise {$$state: Object, then: function, catch: function, finally: function}
$$state: Object
status: 1
value: Array[1]
0: Object
length: 1
__proto__: Array[0]
__proto__: Object
__proto__: Object

问题是,如何访问值?,谢谢

2 个答案:

答案 0 :(得分:4)

函数$ http.get返回一个你需要以这种方式使用的承诺:

studentService.getStudentsFrom($scope.counter).then(
    function(result) {
       console.log(result);
    }
);

https://docs.angularjs.org/api/ng/service/$http 要么  https://docs.angularjs.org/api/ng/service/$q

答案 1 :(得分:0)

在你进一步探索$ http promises和async调用之前,我想你可能需要解决这个问题: 来自var app_ctrl = angular.module('app.controllers');
这个var app_ctrl = angular.module('app.controllers', []);

  

angularjs docs:“空洞的   angular.module中的数组('myApp',[])。这个数组是列表   myApp所依赖的模块。“