wie der Zugriff auf Wert aus Objekt zurückgegeben-service in Winkel?
Ich habe einen service, der gibt ein den tatsächlichen Daten. aber wenn ich es in den controller, die Daten zurückgeben Struktur ist ein bisschen verwirrend.
hier ist mein Werk:
JS:
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);
});
}
}
}]);
Hier ist mein controller, es ruft
JS:
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));
}]);
und hier ist, was ich bekomme.
JS:
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
Die Frage ist, wie kann ich den Zugriff auf den Wert?, Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Funktion $http.Holen Sie sich zurück ein Versprechen, die Sie brauchen, um es auf diese Weise :
sehen https://docs.angularjs.org/api/ng/service/$http
oder
https://docs.angularjs.org/api/ng/service/$q
studentService.getStudentsFrom($scope.counter).then( function(result) { $scope.students = result; } );
Nicht funktioniert?bevor Sie erkunden den $http verspricht und asynchrone Aufrufe weiter, ich denke, Sie haben können, dieses Problem zu beheben:
von
var app_ctrl = angular.module('app.controllers');
zu diesem
var app_ctrl = angular.module('app.controllers', []);