我有一个输入表单页面,当用户提交时,它会使用一些数据表更新该页面。如果用户喜欢他们看到的内容,他们应该能够打印格式完整的这些表格的清理版本(没有页眉导航、页脚导航等)。
我正在使用 bootstrap 和 angularjs 创建表。我想要做的是,当 uset 点击“打印”时,我的角度控制器从生成的页面(在一个名为“模板”的 div 中)获取所需的内容并将其插入到一个新的 html 页面中,然后我可以打开在新的打印窗口中。
我创建了一个指令,我希望它可以$compile
用来嵌入我的数据:
app.directive('printTemplate', function () {
return {
templateUrl: 'app/partials/printtemplate.html',
replace: true,
transclude: true,
restrict: 'A'
};
});
在我的控制器中:
$scope.printTemplate = function () {
var page = angular.element(template).contents();
var newpage = $compile("<html><body><div print-template>" + page + "</div></body></html>")($scope);
var win = window.open();
win.document.write(newpage);
//win.print();
};
但这似乎并没有达到我的预期。感觉就像我做错了。这个想法是因为我的数据表需要引导脚本和 css 引用,所以我需要将它们包含在我的printtemplate.html
文件中。
有没有更简单/更好的方法来做到这一点,或者我错过了什么?