在 Angular 中动态生成选项卡和表格
Dynamically generate tabs and tables in Angular
我正在尝试动态构建选项卡和每个选项卡下的 table。我为动态 table.
提到了这个项目
我不确定我将 table 数据作为异步流传递的方式是否有效。在我的程序中,我有两个选项卡——员工、经理,每个选项卡下面都有一个 table。每个 table 都有自己的排序器、分页和搜索。搜索词已传递到组件。
问题的根源在于您没有将正确的输入传递给组件。
在 tab.component.html
中,您可以使用 async
管道从您的 app-table
组件期望的可观察对象中获取列和行数组。然后,使用选项卡名称引用每个部分。您可以改用索引或枚举,但您的结构需要支持它。
<ng-container *ngIf="{row: (rowData$ | async), col: (colData$ | async)} as data">
<app-table [row]="data.row[tab.tabName]" [columns]="data.col[tab.tabName]" [search]='filters'>
</app-table>
</ng-container>
此外,在 table.component.html
中,将 *ngIf="dataSource"
添加到 mat-table
标记将有助于清除在设置 dataSource
之前抛出的错误。
我有一些你的例子在这里工作:stackblitz
我正在尝试动态构建选项卡和每个选项卡下的 table。我为动态 table.
提到了这个项目我不确定我将 table 数据作为异步流传递的方式是否有效。在我的程序中,我有两个选项卡——员工、经理,每个选项卡下面都有一个 table。每个 table 都有自己的排序器、分页和搜索。搜索词已传递到组件。
问题的根源在于您没有将正确的输入传递给组件。
在 tab.component.html
中,您可以使用 async
管道从您的 app-table
组件期望的可观察对象中获取列和行数组。然后,使用选项卡名称引用每个部分。您可以改用索引或枚举,但您的结构需要支持它。
<ng-container *ngIf="{row: (rowData$ | async), col: (colData$ | async)} as data">
<app-table [row]="data.row[tab.tabName]" [columns]="data.col[tab.tabName]" [search]='filters'>
</app-table>
</ng-container>
此外,在 table.component.html
中,将 *ngIf="dataSource"
添加到 mat-table
标记将有助于清除在设置 dataSource
之前抛出的错误。
我有一些你的例子在这里工作:stackblitz