我在排除 mat-table-exporter 问题的原因时遇到了一些问题;并且正在寻找有关如何解决此问题的指导,因为发生此问题时我没有可使用的 console.log 输出。
我有我想象的将数据加载到表中并替换数据源的非常常见的模式;这是一些有问题的代码示例:-
The TypeScript
// I have radio buttons on a page to select a different report...
this.regionReportService.getRegionReport(this.reportType, this.regionName, this.regionStats[this.selectedReportNumber].reportId);
// I have a subscription to replace mat-table data when a different report is selected - it's set up in ngOnInit
this.getRegionReportItemsSub = this.regionReportService.getRegionReportListener().subscribe(result => {
this.dataSource.data = result;
this.setAdminReviewedOptions();
this.reportDisplay = "normal";
this.isLoading = false;
this.isLoadingReport = false;
})
this.regionReportService.getRegionReport(this.reportType, this.regionName, this.regionStats[0].reportId);
和 HTML...
// On the component HTML, I have a button to export the table to Excel
<button style="margin-right: 20px" [disabled]="isChangingEntry || isLoadingReport"
mat-raised-button (click)="exporter.exportTable('xlsx', {fileName: makeFileName(),
sheet: 'sheet 1', Props: {Author: 'Portal'}})"><mat-icon>download</mat-icon>Export to Excel</button>
// The table begins...
<mat-table matTableExporter [dataSource]="dataSource"
[ngStyle]="{'display' : isLoadingReport ? 'none' : ''}"
#exporter="matTableExporter"
(exportStarted)="isExporting = true"
(exportCompleted)="isExporting = false"
matSort matSortActive="itemPrims" matSortDirection="desc" ....
这是有问题的场景:-
工作:如果我在初始报告加载时导出到 Excel,那工作正常;isExporting 在导出时为真。
作品:如果我选择不同的报告(单选按钮),那么 this.dataSource 被替换;这也很好。
不起作用:如果导出报告;然后我选择不同的报告(单选按钮) - 我无法再次使用导出功能。当我单击“导出到 Excel”时,isExporting 设置为“true”,但没有其他任何反应,它永远不会返回 false,并且没有 console.log 输出指示任何错误;所以很难排除故障。
我希望有一些错误;但也许到目前为止我无法通过谷歌搜索找到一些丢失的东西......比如在更改 this.dataSource.data 后需要刷新一些东西(虽然,表格显示新数据很好 - 新数据是可导出的也一样,只要我没有先导出其他东西......)
希望这是有道理的!
格伦
版本:“mat-table-exporter”:“^1.2.5”、“@angular/core”:“~8.2.14”、“@angular/cdk”:“~8.2.3”、“@angular/material ": "^8.2.3",
解决方案:删除 mat-paginator 上的 *ngIf