1
html要素を変更した後に印刷しようとしていますが、要素が変更されていません。 (Angular2) このソースコードは単純化されたものです。要素を変更した後にhtml要素を更新する方法
<div *ngIf="displayType === 'screen'">
<div>This is Screen</div>
</div>
<div *ngIf="displayType === 'print'">
<div>This is Print</div>
</div>
ボタンをクリックすると、次のイベントが表示されます。
displayType: string = 'screen'; // default
OnPrint() {
this.displayType = 'print';
let tmp = document.createElement('div');
let el = this.elementRef.nativeElement.cloneNode(true);
tmp.appendChild(el);
let content = tmp.innerHTML;
let frame1 = document.createElement('iframe');
document.body.appendChild(frame1);
let frameDoc = frame1.contentWindow;
frameDoc.document.open();
frameDoc.document.write('<html><body>'+content+'</body></html>');
frameDoc.document.close();
setTimeout(function() {
window.frames["frame1"].focus();
window.frames["frame1"].print();
document.body.removeChild(frame1);
}, 500);
}
ただし、内容は変更前の要素です。 要素を更新するにはどうすればよいですか?
これは何を目的としていますか。私はこのコードを理解できません。 Angular2は、動的に追加するHTMLは気にしません。正確に何を更新する必要がありますか? –
印刷時にレイアウトを変更する必要があります。だから私はhtmlを変更する必要があります。人々がAngular2を知らない場合、Angular2について言及しました – user3289230