我一直在 Angular 组件中使用 ng2-pdfjs-viewer。但是,仅当满足条件时,我才需要 div 元素占用 DOM 中的空间。所以我使用 *ngIf 作为 div。但是,当我使用 ngIf 时,分页符。在控制台中,它不会在主窗口中显示任何错误。在控制台侧边栏中,有关于 vendor.js 中 4 个错误的通知。但是,看不到错误。
component.html:使用 ng2-pdfjs-viewer 的部分
<div *ngIf='id'>
/// more code ///
<div class='flex' *ngIf="pdfViewerAutoLoadCE.pdfSrc || pdfViewerAutoLoadJD.pdfSrc">
//// this is the *ngIf causing problem
<div style="width: 49%; height: 60vh; margin-right: 1%;">
<ng2-pdfjs-viewer #pdfViewerAutoLoadCE
[download]="false" [print]="false" [openFile]="false"
[fullScreen]='false'></ng2-pdfjs-viewer>
</div>
<div style="width: 49%; height: 60vh;" >
<ng2-pdfjs-viewer #pdfViewerAutoLoadJD
[download]="false" [print]="false" [openFile]="false"
[fullScreen]='false'></ng2-pdfjs-viewer>
</div>
</div>
</div>
如果我删除 div 的 ngIf 条件,页面将正确显示。我尝试检查条件的有效性或使用任何其他条件,但是,使用 ngIf 时分页符。
我在这里错过了什么吗?请帮忙。
编辑: 添加渲染组件的屏幕截图,
pdfViewer div 上没有 ngIf:正确渲染元素。
使用 ngIf(将变量分配为 true 或 false 的简单条件)
<div class='flex' *ngIf="isLoading">
<div style="width: 49%; height: 60vh; margin-right: 1%;">
<ng2-pdfjs-viewer #pdfViewerAutoLoadCE
[download]="false" [print]="false" [openFile]="false"
[fullScreen]='false'></ng2-pdfjs-viewer>
</div>
<div style="width: 49%; height: 60vh;" >
<ng2-pdfjs-viewer #pdfViewerAutoLoadJD
[download]="false" [print]="false" [openFile]="false"
[fullScreen]='false'></ng2-pdfjs-viewer>
</div>
</div>
错误的渲染。当 isLoading 设置为 false 时,pdfViewer div 从 DOM 中消失,但页面呈现混乱,如下所示。即使 isLoading 设置为 true,渲染也会混乱。