2

ユーザーが送信すると、そのページがいくつかのデータテーブルで更新される入力フォームページがあります。ユーザーが見たものが気に入った場合は、これらのテーブルのクリーンアップされたバージョン (ヘッダー ナビゲーション、フッター ナビゲーションなどなし) をフォーマットをそのままにして印刷できるはずです。

ブートストラップと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ファイルに含める必要があるという考えでした。

これを行うためのより簡単な/より良い方法はありますか、それとも何が欠けていますか?

4

1 に答える 1

0

まったく新しいページを作成しようとする代わりに、単にprintメディアに特定の css を使用してみませんか。

いつものように、w3 は開始するのに最適な場所ですhttp://www.w3.org/TR/CSS2/media.html

于 2013-11-08T19:34:57.613 に答える