无法在 Angularjs 应用程序的控制器中显示来自工厂的 http 获取响应

unable to display the http get response from the factory in controller in Angularjs application

在我的服务中,我发出如下所示的 http get 请求:

.factory('InvoicesGeneralService', function ($http) {
        return {
            getAgreementsByCourierId: function (courierId) {  
            console.log("Courier in Services" + courierId);  
            return $http.get('/api/agreements/byCourierId', {params: {courierId: courierId}}).then(function (response) {
                return response;
            });
          }
        };
    });

并且在浏览器控制台中我看到以下响应:

    [
   {
      "id":3,
      "number":"AGR53786",
      "ediNumber":"EDI7365",
      "startDate":"2012-09-02",
      "endDate":"2018-07-01",
      "courier":{
         "id":2,
         "name":"FedEx",
         "url":"www.fedex.com",
         "isActive":true,
         "isParcel":true
      },
      "client":{
         "id":4,
         "code":"KJGTR",
         "name":"Hearty",
         "isActive":true,
         "engageDate":"2011-07-07",
         "isSendRemittance":true,
         "upsUserName":"Tkd",
         "upsPassword":"kuu",
         "isEligibleForTracking":true,
         "isEligibleForAuditing":true,
         "status":5
      }
   }
]

在我的控制器中,我将其分配给结果列表:

  $scope.resultList  =  InvoicesGeneralService.getAgreementsByCourierId(selCourierId);

但是我的 resultList 总是显示为空。任何人都可以帮助我,为什么会这样? 当我尝试如下所示显示 resultList 时,它总是显示空对象 {}。它应该显示来自服务的响应 json 数组,但它显示的是空对象。

<pre class="code"> {{resultList | json}}</pre> 

$httpreturn是一个承诺。任何消耗该数据的东西都需要像承诺一样处理它。

InvoicesGeneralService.getAgreementsByCourierId(selCourierId).then(function(data) {
  $scope.resultList = data;
});

此外,您工厂的 then 函数目前没有任何作用。您应该 return 来自它的响应数据。

return $http.get('/api/agreements/byCourierId', {params: {courierId: courierId}}).then(function (response) {
  return response.data;
});