javascript - 在Angular2项目中使用jspdf导出动态生成的div的问题

标签 javascript html angular typescript jspdf

我正在使用 jspdf 打印项目中的 div 。我最近意识到,当 div 包含一些动态内容时,这不会打印。我的意思是,如果有一个简单的 Angular if 语句,jspdf 不会打印它。这是一个示例:

在我的 HTML 中:

<div id="content" #content>
   <p>This sections is printed</p>
   <p> {{ item.id }} is also printed</p>
</div>

下面的代码抛出错误,可以在 html 代码下面找到:

<div id="content" #content>
   <p *ngIf="item.id === 'sample'">this is NOT printed</p>
</div>

ERROR TypeError: Cannot read property '1' of undefined at f.renderParagraph (jspdf.min.js:97)...

这是我使用的 typescript 代码:

@ViewChild('content') content: ElementRef;    
public downloadPDF () {
    const doc = new jsPDF();
    const specialElementHandlers = {
      '#editor': function(element, renderer) {
        return true;
      }
    };
    const content = this.content.nativeElement;
    doc.fromHTML(content.innerHTML, 15, 15, {
      'width': 190,
      'elementHandlers': specialElementHandlers
    });

    const fileName = 'test';
    doc.save(fileName + '.pdf');
}

第一个 div 再次打印为 pdf 就好了。但第二个 div 没有。我怀疑这个问题是 Angular if 语句。但我还没有找到解决方案。任何帮助将不胜感激。

最佳答案

不要使用结构指令尝试这个

隐藏属性绑定(bind)

<div id="content" #content>
   <p [hidden]="item.id !== 'sample'">this is NOT printed</p>
</div>

关于javascript - 在Angular2项目中使用jspdf导出动态生成的div的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51953054/

相关文章:

angular - ionic 列表 vs ionic 滚动 vs ionic 3 中的 virtualScroll

javascript - 如何在echarts中将条形图放在x轴中心

javascript - 是否有可能访问与 JavaScript 中的函数实例关联的闭包中捕获的变量

javascript - 如何格式化 ng-repeat 表特定列中的单元格?

javascript - 在 mousemove 上更改图像的位置

javascript - 使用 jquery 加载页面片段并运行代码

angular - 在观察模式下运行 Angular 端到端测试

javascript - Angular 4抛出无法与URL中的XSS脚本匹配任何路由错误

javascript - 日期验证 - 如何解决 Javascript 的自动更正日期问题?

javascript - 如何强制 ASP.NET Ajax 使用 FS 中的脚本而不是 WebResource.axd,或者减少其 HTTP 请求?