在angularjs中调用$ window.print()会导致打印预览显示空白页面

时间:2015-07-06 16:27:45

标签: javascript html css angularjs printing

我有一个非常奇怪的问题,当我在angularjs中调用$ window.print时,我看到的是左上角的日期,页面顶部的页面名称,右下角的页面编号,以及左下方。但是,页面上没有其他内容,这非常奇怪,因为常规页面有足够的内容。

我想我的是,这与我在页面上的ng-view有关,但我不太确定。我会添加一个打印样式表,但我的问题更多的是没有内容可以开始的样式。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试使用(不要忘记注入服务$ timeout):

$timeout(function() {
    $window.print();
})

我认为你在角度方面的问题还没有完成摘要周期并更新DOM。

答案 1 :(得分:0)

使用此功能打印特定的div内容。

$scope.printDiv = function(divName) {
  var printContents = document.getElementById(divName).innerHTML;
  var popupWin = window.open('', '_blank', 'width=300,height=300');
  popupWin.document.open()
  popupWin.document.write('<html><head><link rel="stylesheet" type="text/css" href="style.css" /></head><body onload="window.print()">' + printContents + '</html>');
  popupWin.document.close();
}