2014-09-17 20 views
6

JSReport hakkında şimdi bir sorunum var ... Zaten bir API'm var olduğunu varsaydım ... Şimdi istediğim, AngularJS'yi kullanan İstemci Tarafımla nasıl ilişkilendirileceğidir.AngularJS'de jsReport'a nasıl bağlanır?

Postman kullanırsam, istediğim bir pdf dosyası döndürür. Ama benim sorunum

Böyle bir kod var .. o ben angularjs kullanarak göndermek benim sayfası göstermek için yapılması gerekenler:

Kontrolörü

$scope.Print = function() { 
     authService.print().then(function(result){ 
      var _result = result; 
     }); 
    }; 

Servis

var _print = function() { 
     var data = { "template": { "shortid": "byQtwHLPQ" } }; 
     return $http.post("http://192.168.8.87/api/report", data).then(function (result) { 
      return result; 
     }); 
    }; 

authServiceFactory.print = _print; 

Şimdi bu Kod'a sahibim ve çalışmıyor ... Geri dönüşü olmadığına karar verdim dönüş ve sadece yazı ama yine de işe yaramadı ve pdf indirme bile üzerinde çalışmadı.

Herkes Lütfen yardımcı olabilir ... bunun gibi

+0

Raporu nasıl oluşturdunuz? – Sajeetharan

cevap

4

Kullanımı ..

Kontrolör

var parameter = { "template": { "shortid": "ZkMoslfdX" }}; 
     PrintService.Print(parameter).then(function (result) { 
      var file = new Blob([result.data], { type: 'application/pdf' }); 
      var fileURL = URL.createObjectURL(file); 
      $scope.content = $sce.trustAsResourceUrl(fileURL); 
     }); 

Servis

var reportUrl = "http://192.168.8.87/api/report"; 
    var _print = function (parameter) { 
     return $http.post(reportUrl, parameter, { responseType: 'arraybuffer' }).success(function (response) { 
      return response; 
     }); 
    }; 

ana fikri result.data bir damla dönüştürülür ve okunabilir hale getirecek şekilde bir objectURL oluşturmak ve URL

HTML açısal güven için kullanılır object etiketi ve $sce.trustAsResourceUrl için

<object data="{{content}}" type="application/pdf" style="width:100%;height:80%"></object> 

Bunun atıfta olmasıdır Açıklama için AngularJS: Display blob (.pdf) in an angular app'u gönderin, bunu okuyun.