gpt4 book ai didi

javascript - Angular 1.2 Iframe ng-src 不更新 pdf

转载 作者:行者123 更新时间:2023-12-03 05:23:40 24 4
gpt4 key购买 nike

我从输入 html 中获取 PDF 文件并尝试使用 HTML5 文件 API 来显示它,我能够 console.log 文件 url,但它没有显示在我的 iframe 中:

这是我的 html:

<html ng-app="PDFReaderApp">
<head>
<title> Automatically get your GPA from submitting in your transcript pdf file </title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script>
<script src="./pdf.js" ></script>
<script src="./app.js" ></script>
<script src="./controllers.js"></script>

<style>
iframe {
height: 500px;
width: 400px;
margin: 2em;
}
</style>
</head>
<body ng-controller="TranscriptReaderCtrl">

<input id="inputPDF" type="file" accept="application/pdf" onchange="angular.element(this).scope().getPDF(this.files)" />
<div id="display">
<iframe id="viewer" ng-src="{{fileUrl}}" ></iframe>
</div>
</body>
</html>

和我的 angularjs Controller 代码:

function TranscriptReaderCtrl($http, $scope, $window, $sce) {
$scope.uploadedPDF = "";
$scope.fileUrl = "";

$scope.getPDF = function(files) {
var fileUrl = $window.URL.createObjectURL(files[0]);
console.log(fileUrl);
$scope.fileUrl = $sce.trustAsResourceUrl(fileUrl);
console.log($scope.fileUrl);
}
}

最佳答案

onchange输入文件的事件不是 Angular 事件,您可以轻松地看到,通过必须做的工作,您可以在事件处理程序中获取范围。

所以 Angular 不会是aware在此事件期间对模型所做的更改。

要强制它刷新 View 并影响模型更改,您必须通过调用$scope.$apply()来运行摘要周期。在 getPDF 的末尾功能。

关于加载错误,你肯定要加上blob://到 Angular URL 白名单:

var app = angular.module( 'myApp', [] )
.config( [
'$compileProvider',
function( $compileProvider )
{
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|blob):/);
// Angular before v1.2 uses $compileProvider.urlSanitizationWhitelist(...)
}
]);

关于javascript - Angular 1.2 Iframe ng-src 不更新 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41255993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com