Imprimir uma div usando javascript no aplicativo de página única angularJS
Eu tenho um aplicativo Web de página única usando angularJS. Preciso imprimir uma div de determinada página. Eu tentei o seguinte:
A página contém alguns 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>
O controlador possui o seguinte script:
$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;
}
Este código imprime a div desejada, mas há um problema. a declaraçãodocument.body.innerHTML = originalContents;
substitui o corpo de todo o aplicativo, pois é um SPA. Portanto, quando atualizo a página ou clico no botão Imprimir novamente, todo o conteúdo da página é apagado.