2016-07-24 3 views
0

を返しません。ここにサービスがあります:リゾルバ機能は、私は、各itarationでHTTPサービスを呼び出すループを持っている私のリゾルバ機能では何も

(function() { 
    "use strict"; 

    angular.module("reportBuilder").factory("reportService", ["$http", "config", reportService]); 

    function reportService($http, config) { 
     var serviceUrl = config.baseUrl + "api/Reports/"; 
     var service = { 
      getDetailsReport: detailsReport 
     }; 

     return service; 


     function detailsReport(clientId, date, frequencies) { 

      if (!date && !clientId) return null; 
      return $http.get(serviceUrl + "ReportDetailed/" + clientId + "/" + date + "/" + frequencies); 
     } 

    } 
})(); 

次のループとtの繰り返しを開始する前に、httpサービスが終了するまで待つ必要があります。彼は結果を返します。この目的のために、私は$q.allを上記のレゾルバ入会に使用します。

しかし、リゾルバ関数は何も返しません。なぜ私は間違っていますか?リゾルバ関数は何も返さないのですか?

答えて

0

約束事が正しく構成されていません。あなたは試すことができます:

function detailedReportDataResolver($stateParams, reportService) { 
    var promises = []; 
    var frequenciesArr = $stateParams.frequencies.split(',').map(function (item) { return parseInt(item, 10); }); 

    angular.forEach(frequenciesArr, function (freq, key) { 
     var promise = reportService.getDetailsReport($stateParams.clientId, $stateParams.date, freq).then(function (result) { 
      return result.data; 
     }); 
     promises.push(promise); 
    }); 
    return $q.all(promises);   
} 
+0

は、私はあなたの方法をしようと試みたが、まだ機能しませ私はすべてのエラーを取得しない方法で、HTTP servicve – Michael

+0

によってfatchedデータを返しますありがとう – Michael

関連する問題