AngularJS ng-src / ng-data-attr未编译

时间:2017-08-24 15:51:12

标签: javascript angularjs pdf

您好我从网络服务请求pdf,并希望在请求完成后显示pdf,并且我已经生成了一个ObjectUrl。我的问题是,"嵌入"中的ng-src或"对象"中的ng-data-attr;未编译且浏览器正在下载url / {{pdfData}}

这是我的DOM:

 <div ng-if="pdfData != ''">

    <embed ng-src="{{pdfData}}" style="width:200px;height:200px;" type="application/pdf"></embed>

    <!--<object ng-bind="pdfData" data="{{pdfData}}" type="application/pdf" width="100%" height="800px">-->
    <br>Objekt:
   <object ng-attr-data="{{pdfData}}" type="application/pdf" width="100%" height="800px">

我的JS代码:

$http.post('url', { }).
   then(function(response) {
      var byteCharacters = atob(response.data.trim())
      var byteNumbers = new Array(byteCharacters.length);
      for (var i = 0; i < byteCharacters.length; i++) {
         byteNumbers[i] = byteCharacters.charCodeAt(i);
      }
      var byteArray = new Uint8Array(byteNumbers);
      var blob = new Blob([byteArray], {type: 'application/pdf'});

      var blobUrl = URL.createObjectURL(blob);

      $scope.pdfData = $sce.trustAsResourceUrl(blobUrl);

      }, 
      function errorCallback(response) {
           console.log(response);
      });

当我运行上述代码时,它可以在Google Chrome上正常运行,但不能在IE / Firefox中使用。

我也尝试过自己的指令,如下所述:angularjs expression in html <object> tag

但是我遇到了问题,当我为另一个PDF创建一个新的src-url时,分配给$ scope.pdfData的新pdf没有加载到嵌入或对象控件中。

感谢您的帮助

0 个答案:

没有答案