在angularjs 2中,更新DOM内容的问题

时间:2016-07-02 09:37:39

标签: angularjs angular

在angularjs 2中的

我想实现打印功能。

实施此步骤的步骤如下: - 1.按钮单击我想从服务器获取数据。 2.成功时,将数据存储在Component类中的数组属性中(通过此DOM自动更新)并调用我的自定义打印函数来获取DOM内容并将其放在另一个窗口中并调用print打开打印对话框。

问题: 当我更新属性时,当我分配新值时,DOM不会自动更新。它会在一段时间后自动更新。在那段时间,如果我的打印功能被执行,那么我得到了旧的DOM内容。

代码:点击按钮,我从服务器获取数据并将该数据传递给setContent方法。

//set properties of component
setContent(data: any, columns: any): void {
this.customCollection = data;
this.columnsToPrint = columns;

//by setting above 2 properties i was assuming that DOM content is updated by this. Now i call function to print the content
this.printContent();
}

printContent(): void {
var printContents = document.getElementById("divPrintContent").innerHTML;
var popupWin = window.open('', '_blank', 'width=1200,height=800');
popupWin.document.open();
popupWin.document.write('<html><head><link rel="stylesheet" media="print" type="text/css" href="/app/shared/PRINT/print.css" /></head><body onload="window.print()">' + printContents + '</body></html>');
popupWin.document.close();       
return;
}

现在当新窗口打开(用于打印)时,它不显示更新的数据,但在检查父窗口的DOM(通过F12)时,我发现内容已更新。

0 个答案:

没有答案