我在这里宣布了一项服务:
(function() {
'use strict';
angular
.module('ngInterview.api.students')
.service('StudentsService', StudentsService);
StudentsService.$inject = ['$http'];
function StudentsService($http) {
/**
* Exposed functions
*/
this.getName = getName; // This function serves no purpose. It's just here as an example.
this.getStudents = function() {
console.log("getting to the getStudents function");
return $http.get("http://il-resume-api.azurewebsites.net/api/students").then(function(res) {
console.log("getting data back");
console.log(res.data);
return res.data;
}, function(res) {
console.log("getting bad data");
console.log(res);
return res.data;
});
}
/**
* Implementations
*/
function getName() {
return 'studentsService';
}
}
})();
出于某种原因,我的代码只能进入"进入getStudents函数"并且之后没有回应。我已经尝试在控制器中设置一个带有$ http的空白项目并且它可以工作,它从端点检索数据,但由于某种原因,这项服务作为模块的一部分不会发生。当我在console.log $ http时,我得到一个有效的对象,所以我不认为这是。
答案 0 :(得分:1)
您的getStudents
函数正在返回$http.get
。通过这样做,您将承诺交给任何选择调用getStudents
函数的人。如果您想要查看登录操作,请相应地处理您的功能,如下所示:
控制器范围
studentsService.getStudents().then(function() {
console.log("I expect to see my logs right above this log");
})