2014-09-17 18 views
6

Mam teraz problem z JSReport .. Zakładam, że mam już API ... Chcę teraz, jak połączyć go z moją stroną klienta, która używa AngularJS.Jak podłączyć jsReport w AngularJS?

Jeśli użyję listonosza, zwrócę plik pdf, który jest tym, czego chcę. Ale moim problemem jest to, jak pokazują to jest moja strona kiedy dodawać go za pomocą angularjs ..

mam kod jak poniżej:

Controller

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

usługi

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; 

Teraz mam ten kod i nie działa ... Zakładam, że nie ma powrotu, więc usunąłem powrót i po prostu post, ale nadal nie działa, a nawet pobieranie pdf nie działało na nim.

Każdy może pomóc proszę ...

+0

w jaki sposób utworzyłeś raport? – Sajeetharan

Odpowiedz

4

Zastosowanie jak ten ..

Controller

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); 
     }); 

usługi

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; 
     }); 
    }; 

Ideą jest to, że result.data przekształca się w blob i utworzyć objectURL tak, że jest czytelny i do znacznika object i $sce.trustAsResourceUrl używane zaufać kątowe do URL

HTML

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

odnoszę się do tego po AngularJS: Display blob (.pdf) in an angular app, aby uzyskać wyjaśnienie, po prostu przeczytaj ten.