您好我从网络服务请求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没有加载到嵌入或对象控件中。
感谢您的帮助