我有这样的锚标记:
<a id="open8DReportPDF" (click)="download8DReport($event)" [href]="safeUrl" target="_blank"></a>
有了它,我需要打开一个在&#39; download8DReport&#39;中生成的PDF。功能。此函数生成一个已清理并插入&#39; safeUrl&#39;变量,因此可以在新的浏览器选项卡中打开PDF:
download8DReport(e) {
this.complaint8DReportService.get8DReportPDF(this.id, this.getReportName())
.subscribe((response: Blob) => {
this.safeUrl = this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(response));
});
}
我发现只有在所有浏览器中正常运行并且没有重大问题的唯一可靠方法是使用&#39; href&#39;锚标签的属性。此外,&#39; window.location&#39;不适用于SafeUrls。问题是&#39; download8DReport&#39;功能在订阅完成之前结束,因此&#39; safeUrl&#39;变量没有适当的值。
我尝试使用隐藏的锚标记,然后在“下载8DReport”之后使用按钮以编程方式执行单击。功能,但浏览器说要显示一个弹出窗口,我想避免这种情况。
有没有办法等待订阅完成之前&#39; href&#39;执行重定向?