Распечатайте div, используя JavaScript в одностраничном приложении angularJS
У меня есть одностраничное веб-приложение, использующее angularJS. Мне нужно напечатать div определенной страницы. Я попробовал следующее:
Страница содержит несколько div (print.html)
<div>
<div>
Do not print
</div>
<div id="printable">
Print this div
</div>
<button ng-click="printDiv('printableArea');">Print Div</button>
</div>
Контроллер имеет следующий скрипт:
$scope.printDiv = function(divName) {
var printContents = document.getElementById(divName).innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
}
Этот код печатает нужный div, но есть проблема. заявлениеdocument.body.innerHTML = originalContents;
заменяет тело всего приложения, так как это SPA. Поэтому, когда я обновляю страницу или снова нажимаю кнопку печати, все содержимое страницы стирается.