我正在尝试显示一个基于agularjs变量的PDF文件。我有它为谷歌浏览器工作,但它似乎并没有在IE中工作。我已经尝试将网址硬编码到页面中,它完美无缺。以下是显示结果的plunker:http://plnkr.co/edit/gFfGQCzAfmf2zf5C2Bpc?p=preview
请注意,查看我的问题的唯一方法是在IE中使用plunker而不是Chrome。我的IE和Adobe都是最新的。
我的理论是,Adobe正在使用url作为{{documentSrc}},然后角度运行并用该值替换该变量,然后Adobe永远不会识别它。这是真的?如果是这样,我该如何解决这个问题呢?如果没有,发生了什么?
代码
sapply
答案 0 :(得分:2)
对object元素使用指令。您需要创建一个监视来检测数据中的更改并键入绑定。如果您打算多次更改绑定,还需要跟踪指令元素。
见这里:http://embed.plnkr.co/fFtkcG/preview
<object-reloadable>No document selected</object-reloadable>
.directive('objectReloadable', function() {
var link = function(scope, element, attrs) {
var currentElement = element;
scope.$watch('documentSrc', function(newValue, oldValue) {
if (newValue !== oldValue) {
scope.documentSrc = newValue;
var html = '<object type="application/pdf" data="' + newValue + '"></object>';
var replacementElement = angular.element(html);
currentElement.replaceWith(replacementElement);
currentElement = replacementElement;
}
});
};
return {
restrict: 'E',
scope: false,
link: link
};
})