Трудно сделать простой вызов API с Angular

0

Почему, когда я пытаюсь получить данные с помощью этого простого вызова 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;
    });
  }
});
  • 1
    Вы не указали ошибку, вы указали URL-адрес файла на локальном ПК. Возможно, вы вырезали и вставили неверную информацию при написании вопроса?
  • 0
    Это произошло в моем журнале консоли. В моей функции get users я передаю свой baseUrl
Показать ещё 3 комментария
Теги:

1 ответ

2
Лучший ответ

Вы не присваиваете 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;
    });
};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню