AngularJS ($ http GET): $ scope.names всегда является пустым массивом, но вызов внутреннего интерфейса в порядке - PullRequest
0 голосов
/ 14 апреля 2020

При вызове серверной части (GET / app / getNames) возвращается массив json.

Проблема в том, что $ scope.names в app.controller. js всегда остается пустым массив.

app.controller. js:

myApp.controller('myAppController', ['$scope','$http','myAppService',
        function($scope, $http, myAppService) {

            $scope.names = [];
            myAppService.getNames(function(response) {
                $scope.names = response;
            });

        } 
]);

app.service. js

myApp.service('myAppService', ['$http', function($http) {

    this.getNames= function() {
        return $http({
            method: 'GET',
            url: '/app/getNames',
         });
     }

}]);

1 Ответ

0 голосов
/ 16 апреля 2020

Функция getNames() в вашем сервисе возвращает обещание, которое вы игнорируете. Вы вызываете функцию getNames() и передаете ей в качестве параметра другую функцию, которая является неверной.

Чтобы получить результат обещания, вы должны изменить код в вашем контроллере следующим образом:

$scope.names = [];
myAppService.getNames().then(function(response) {
    $scope.names = response;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...