【发布时间】:2018-06-19 04:08:26
【问题描述】:
我正在从我的视图或 HTML 中获取动态数据,并将其放置在我的页面上,以便我可以查看所述数据的打印结果。我必须使用这种方法,因为我正在创建自己的打印页面,上面有这些动态数据。我正在使用的方法获取第一个初始值,而不是最新更新的 DOM。如果我删除 .innerHTML,我可以看到动态数据,但不确定是否有办法在没有 .innerHTML 的情况下获取该数据。
TS
click(data){
this.newData = data
let printContents, popupWin;
if(document.getElementById('print-section') != null){
printContents = document.getElementById('print-section').innerHTML;
popupWin = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto');
popupWin.document.open();
popupWin.document.write(`
<html>
<head>
<title>Print tab</title>
<style>
//........Customized style.......
</style>
</head>
<body onload="window.print();window.close()">${printContents}</body>
</html>`
);
popupWin.document.close();
}
}
HTML
<div id="print-section" style="display:none">
<div>
<p>{{newData.id}}</p>
</div>
</div>
【问题讨论】:
-
你能附上一个plunk吗?
-
你可以改用
[inner HTM]属性绑定 -
@Aravind 他正在尝试获取未在模板中设置的 html 内容。属性绑定不是解决方案。我建议使用 ViewChild。请参阅下面的答案。
-
@VishalGulati 是正确的,我会检查你的解决方案。
标签: javascript html angular ionic-framework