谢谢satchmorun,但如果 smb 想要更改链接而不重新加载页面或模式,您可以使用:
<pdf2 src="pdfUrl" height="heightForPDF"></pdf2>
而这个指令:
app.directive('pdf2', ['$compile', function ($compile) {
return {
restrict: 'E',
scope: {
src: "=",
height: "="
},
link: function (scope, element, attr) {
function update(url) {
element.html('<object data="' + url + '" type="application/pdf" width="100%" style="height: ' + scope.height + 'px">' +
'Для просмотра pdf:<br /> Для Internet Explorer установите <a target="_blank" href="http://get.adobe.com/reader/">Acrobat Reader</a><br />' +
'Для Chrome: <a target="_blank" href="https://support.google.com/chrome/answer/6213030?hl=ru">Проверьте настройки</a>' +
'</object>');
$compile(element.contents())(scope);
}
scope.$watch('src', update);
}
};
}]);
从这个答案和重新编译动态加载指令的示例中感谢Jerry 。
ps "pdfUrl" 和 "heightForPDF" 在范围内是可变的