我有一个返回实际数据的服务。但是当我在 Controller 中调用它时,返回的数据结构有点困惑。
这是我的工厂:
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);
});
}
}
}]);
这是调用它的我的 Controller
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
问题是,我怎样才能访问这个值?,谢谢
最佳答案
函数 $http.get 返回一个你需要以这种方式使用它的 promise :
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
关于javascript - 如何从 Angular 返回的服务中访问值对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30409377/