Angularjs фабрика, чтобы получить API - PullRequest
0 голосов
/ 16 октября 2018

Вот так выглядит моя фабрика:

  myApp.factory('displayAll', function($http){


var service = {};
var aaudit = [];
service.callAudit = function () {
    $http.get(AuditUrl).then(function(response) {
        aaudit = response.data.SrchResults;
        aaudit.splice(0,1);
        console.log(aaudit)
        return aaudit;
    });

}


return service;

});

Я пытаюсь передать информацию об аудите на контроллер, как я могу это сделать?Потому что примеры, которые я вижу, все только извлекают URL.Возможно ли сделать это так, как я это делаю?

Контроллер:

    var CategoryExhibit = displayAll.callExhibit()
      .then(function (response) {
        $scope.exhibitions = response.data.SrchResults;
        $scope.exhibitions.splice(0,1);
      }, function (error) {
          console.log(error);
        });

Он работает таким образом, но я пытаюсь перенести весь кусок кода на завод, чтобы я мог использовать его и на другом контроллере

Обновление:

      service.callAudit = function () {
        $http.get(AuditUrl).then(function(data) {
        aaudit = response.data.SrchResults;
        aaudit.splice(0,1);
        console.log(aaudit)
        return aaudit;
    });

}

1 Ответ

0 голосов
/ 16 октября 2018

Вам необходимо вернуть обещание от службы return $http.get()

Вот рабочий пример

angular.module("app",[]).controller("myCtrl",function($scope, auditService){

$scope.exhibitions = {};
auditService.callAudit()
      .then(function (response) {
        $scope.exhibitions = response;
      }, function (error) {
          console.log(error);
        });

}).factory('auditService', function($http){

var service = {};
var aaudit = [];
service.callAudit = function () {
    return $http.get('https://jsonplaceholder.typicode.com/todos').then(function(response) {
        aaudit = response.data;
        console.log(aaudit.splice(0,1))
        return aaudit.splice(0,1);
    });

}
return service;
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app" ng-controller="myCtrl">
{{exhibitions}}
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...