Почему, когда я пытаюсь получить данные с помощью этого простого вызова API, я получаю сообщение об ошибке http://127.0.0.1:8080/%7B%7Buser.avatar%7D%7D <-? Но если я переведу свое обещание в свой контроллер, он будет работать. Я думал, что вы можете выполнить свои обещания в своем сервисе, и все будет хорошо?
Это мой файл controller.js
angular.module('userProfiles').controller('MainController', function($scope, mainService) {
$scope.getUsers = function() {
mainService.getUsers();
}
$scope.getUsers();
});
Это мой файл services.js
angular.module('userProfiles').service('mainService', function($http) {
var baseUrl = 'http://reqres.in/api/users?page=1';
this.getUsers = function() {
return $http({
method: 'GET',
url: baseUrl
}).then(function(response) {
this.users = response.data.data;
});
}
});
Вы не присваиваете response.data.data
ничего полезного вне этого обратного вызова. Попробуйте это, вместо этого, вернув обещание, которое разрешает данные users
...
this.getUsers = function() {
return $http.get('http://reqres.in/api/users', {
params: {page: 1}
}).then(function(res) {
return res.data.data;
});
};
и в вашем контроллере
$scope.getUsers = function() {
mainService.getUsers().then(function(users) {
$scope.users = users;
});
};