近期有一个需求:写一个可以实现打印功能的directive,当然,首先声明我使用的前段框架是angularJS,directive实现的是要打印一个modal框中的内容。
$window.print()是打印当前窗口的所有内容。那么如何进行过滤只打印modal框中的内容呢?
实现打印modal中的内容我尝试了俩种方法:
- 一种是通过$window.open()打开一个新的窗口,窗口中显示原modal中内容,并在新窗口添加打印按钮,用于调用print()进行打印当前新窗口的内容;
- 一种是直接调用$window.print(),通过css过滤,实现打印功能。
最后我是通过css来进行过滤,显示要打印的部分,隐藏不需要打印的部分的。
首先,写了一个directive,实现获取要打印的部分,并调用$window.print():
angular.module("printModal", [])
.directive('Print-modal', ['$window',
function ($window) {