ng-template在ng-table-virtual-scroll中使用mat-table &g



我试图使用ng-template的内容来渲染cdk-virtual-scroll-viewport(从这个库:ng-table-virtual-scroll),但我得到一个错误

<cdk-virtual-scroll-viewport tvsItemSize [footerEnabled]="true"
[headerEnabled]="false">
<ng-container *ngTemplateOutlet="operationTable;context:{$implicit:operationTableDataSource}">
</ng-container>
</cdk-virtual-scroll-viewport>
<ng-template #operationTable>
<mat-table>
.....
</mat-table>
</ng-template>

ERROR TypeError: Cannot read properties of undefined"_switchDataSource")在TableItemSizeDirective。ngAfterContentInit (ng-table-virtual-scroll.mjs: 186:40)

如果我不使用ng-template并直接复制内容,它就会正常工作。交货;下面的代码运行正常

<cdk-virtual-scroll-viewport tvsItemSize [footerEnabled]="true"
[headerEnabled]="false">
<mat-table>
.....
</mat-table>
</cdk-virtual-scroll-viewport>

有没有人知道如何使用ng-template与cdk-virtual-scroll-viewport或这是cdk-virtual-scroll的限制?如果需要,我可以补充更多的信息,但我希望问题和问题是明确的。

你的标题和你的帖子没有提到任何关于你正在使用的当前库,这是ng-table-virtual-scroll。我想说这很误导人。

我去了库源代码他们做的是他们通过使用ContentChild来获得表格这与ngTemplateOutlet不起作用

//look for the MatTable under the directive
@ContentChild(MatTable, { static: false })
table: MatTable<any>;

由于这是内部库代码,您将无法更改它,因此答案是否定的,您不能将ngTemplateOutlet与此库一起使用

对我来说,问题是我使用的是旧版本ng-table-virtual-scroll,这与我的Angular版本不兼容https://www.npmjs.com/package/ng-table-virtual-scroll

最新更新