2017-08-12 10 views
0

サーバー側から角度2のアプリケーションを使用してPDFを作成しようとしていますが、ElementRefを使用してHTMLコンテンツをサーバーに送信していますが、角度結合部分ではなくHTML部分のみを送信します。私のHTMLコンテンツにCSSの部分を追加してください。私はElementRefが最善の方法であることを知りたいです。HTMLコンテンツをサーバーに送信してPDFを作成する角度2

Component.ts

import { AfterContentInit, Component, ElementRef } from '@angular/core'; 

@Component({ 
    selector: 'app-root', 
    template: ` 
    <table> 
    <thead> 
    <tr> 
     <th>username</th> 
     <th>email</th> 
     <th>name</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr *ngFor="let data of data"> 
     <td>{{ data.username }}</td> 
     <td>{{ data.email }}</td> 
     <td>{{ data.first_name }}</td> 
    </tr> 
    </tbody> 
    </table>` 
}) 

export class AppComponent implements AfterContentInit { 
    node: string; 

    data = [ 
    { 
     "id": 11, 
     "username": "abc", 
     "email": "[email protected]", 
     "first_name": "ramesh" 

    }, 
    { 
     "id": 13, 
     "username": "btest", 
     "email": "[email protected]", 
     "first_name": "btest" 

    }, 
    { 
     "id": 14, 
     "username": "abcd", 
     "email": "[email protected]", 
     "first_name": "abcd" 

    }, 
    { 
     "id": 15, 
     "username": "demotest", 
     "email": "[email protected]", 
     "first_name": "demotest", 
     "last_name": "demo" 

    } 
    ] 

    constructor(private elementRef: ElementRef) { } 

    ngAfterContentInit() { 
    this.node = this.elementRef.nativeElement.innerHTML; 
    } 

} 

それはデータのみを以下に送信:

<table class="table table-striped"> 
    <thead> 
    <tr> 
     <th>username</th> 
     <th>email</th> 
     <th>name</th> 
    </tr> 
    </thead> 
    <tbody> 
    <!--template bindings={}--> 
    </tbody> 
    </table> 

をそして私は

<table class="table table-striped"> 
    <thead> 
    <tr> 
     <th>username</th> 
     <th>email</th> 
     <th>name</th> 
    </tr> 
    </thead> 
    <tbody> 
    <!--template bindings={ 
    "ng-reflect-ng-for-of": "[object Object],[object Object],[object Object],[object Object]" 
}--><tr> 
     <td>abc</td> 
     <td>[email protected]</td> 
     <td>ramesh</td> 
    </tr><tr> 
     <td>btest</td> 
     <td>[email protected]</td> 
     <td>btest</td> 
    </tr><tr> 
     <td>abcd</td> 
     <td>[email protected]</td> 
     <td>abcd</td> 
    </tr><tr> 
     <td>demotest</td> 
     <td>[email protected]</td> 
     <td>demotest</td> 
    </tr> 
    </tbody> 
    </table> 
+0

https://stackoverflow.com/a/778897/4099454 – Hitmands

答えて

1

のようにあなたは間違ってフックを使用している送信します。 ビューが初期化されるのを待つ必要があります。あなたの*ngForが解決され、適切なコンテンツがビューに配置されます。

ngAfterViewInit() { 
    this.node = this.elementRef.nativeElement.innerHTML; 
} 
+0

ありがとうございます – user6751153

関連する問題