2017-10-28 8 views
4

javaとangularjsアプリケーションで作業しています。 私はオブジェクトを反復し、ページに値を表示するhtmlページを持っています。動的に生成されたdiv IDを取得するjsコード

htmlコード:

<div id="{{value.pageIndex}}" ng-repeat="(key, value) in employees" class="myDivClass"> 
    <div> 
     <h1><font color="red"> {{value.pageHeader}}</font></h1> 
    </div> 
    <div> 
     <h1> {{value.pageIndex}}</h1> 
    </div> 
    <div>text from html page</div> 
</div> 

それは私の他のシナリオの私のアプリケーションで失敗しますように私は別のdivの内側に上記のHTMLコードを囲むべきではありません。

ユーザーがボタンをクリックしたときに、上記のHTMLコンテンツをPDFに書き出したい場合は、下のjsコードに示すようにHTMLページから値を取得しようとしているときに、最初の反復データのみがエクスポートされますすべてのデータをPDFにエクスポートする必要があります。

JSコード:

$scope.export = function() { 
    var pdf = new jsPDF('landscape'); 
    source = $('.one1'); 
    pdf.addHTML(source, 0, 0, { 
     pagesplit: true 
    },function(dispose){ 
     pdf.save('test.pdf'); 
    }); 
} 

上記のシナリオのデモをご覧ください:ダイナミックに合格する方法についてhttps://plnkr.co/edit/6jNIu5c26ACeTPsfACX2?p=preview

任意の提案は、JSコードにIDを生成し、PDFに全体HTMLデータをエクスポート?動的に生成されたIDをjsコードに渡して、データ全体をPDFにエクスポートする方法はありますか?

PS:私のアプリケーションで他のシナリオに失敗するので、上記のHTMLコードを別のdivに囲んではいけません。

答えて

0

id属性を使用する代わりに、クラスmyDivClassを使用してデータを取得します。

jQuery .each()を使用すると、すべてのデータを取得できます。

追加アペンド元のdivこれは

$scope.export = function() { 
    var pdf = new jsPDF('landscape'); 
    var source = $('#append-source'); 
    $('.myDivClass').each(function(){ 
     var html = $(this); 
     source.append(html); 
    }); 
    console.log(source); 
    pdf.addHTML(
      source, 0, 0, { 
       pagesplit: true 
      }, 
      function(dispose){ 
       pdf.save('test.pdf'); 
      } 
    ); 
    } 
+0

変更してくださいできhttps://plnkr.co/edit/6jNIu5c26ACeTPsfACX2?p= JavaScriptでPDFを作成するために、DIV

<body> <div ng-controller="listController"> <button ng-click="export()">export</button> <div id="{{value.pageIndex}}" ng-repeat="(key, value) in employees" class="myDivClass"> <div> <h1><font color="red"> {{value.pageHeader}}</font></h1> </div> <div><h1> {{value.pageIndex}}</h1></div> <div>text from html page</div> </div> </div> <div id="append-source"></div> </body> 

使用をHTMLにプレビュー私はちょうど上の私のポストのリンクを更新しました、ありがとう。 – user8838953

+0

@ user8838953申し訳ありません...私は決してプランナーを使用したことはありませんが、あなたはほぼそこにいると思います。 source = $( '。myDivClass')をsource = $( '。myDivClass')に変更するだけでいいと思います。 –

+0

私はそれを使用しましたが、エラーが発生しました。「未定義のプロパティ呼び出しを読み取ることができません」 – user8838953

関連する問題