从控制器创建一个新的html页面

时间:2013-11-08 17:52:04

标签: angularjs angularjs-directive

我有一个输入表单页面,当用户提交时,它会使用一些数据表更新该页面。如果用户喜欢他们看到的内容,他们应该能够打印出格式完整的那些表格的清理版(无页眉导航,页脚导航等)版本。

我正在使用bootstrap和angularjs创建表。我想要做的是当用户点击'print'时,我的角度控制器从生成的页面中获取所需内容(在一个名为'template'的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文件中包含这些内容。

是否有更容易/更好的方法来做到这一点,或者我错过了什么?

1 个答案:

答案 0 :(得分:0)

为什么不简单地为print媒体使用特定的CSS,而不是尝试创建一个全新的页面。

与往常一样,w3是开始http://www.w3.org/TR/CSS2/media.html

的最佳场所