angular - 订阅数据更新时,角度材料数据表不呈现
问题描述
我里面有数据表ng-template
,我在组件中的几个地方使用它。有几个数据源和不同的数据表,所以我使用 ng 容器显示数据表,并带有不同的绑定数据。
我在不同的组件中使用没有 ng-container 和 ng-template 结构的以下数据表,它的效果很好。但是当我这样使用时,更新给定数据时表格不会填满。
ng-容器
<ng-container [ngTemplateOutlet]="datatableTemplate"
[ngTemplateOutletContext]="{posts: confirmedCases, postCount: confirmedCasesTotal, loading: confirmedCasesLoadingState}">
</ng-container>
和数据表模板
<ng-template let-posts let-postCount let-loading #datatableTemplate>
<div class="table-container">
<table mat-table [dataSource]="posts">
<ng-container matColumnDef="user">
<th mat-header-cell [width]="150" *matHeaderCellDef> User</th>
<td mat-cell *matCellDef="let element">
<a [routerLink]="'/users/' + element.user_id">{{ element.user | shorten }}</a>
</td>
</ng-container>
<ng-container [matColumnDef]="def.column" *ngFor="let def of tableHeaders">
<th mat-header-cell [width]="def.width" *matHeaderCellDef> {{ def.title }} </th>
<td mat-cell *matCellDef="let element">
<span [class.text-danger]="def.column === 'status_title' && element[def.column] === 'Banned'"
[class.text-warning]="def.column === 'status_title' && element[def.column] === 'Suspended'"
[title]="element[def.column]">
<fa-icon class="datatable-icon" *ngIf="def.hasOwnProperty('icon')" [icon]="def.icon"></fa-icon>
{{ element[def.column] | shorten: 30}}
</span>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="columnDefinitions; sticky: true"></tr>
<tr mat-row *matRowDef="let row; columns: columnDefinitions;"></tr>
</table>
<div class="d-flex justify-content-center mt-3 mb-3" *ngIf="loading">
<div class="spinner-border text-secondary" role="status">
<span class="sr-only">Loading...</span>
</div>
</div>
<mat-paginator [length]="postCount" (page)="onPageChange($event)"
[pageSize]="10" [pageSizeOptions]="[5, 10, 25, 100]">
</mat-paginator>
</div>
</ng-template>
解决方案
推荐阅读
- hyperledger-fabric - 处理区块链交易涉及哪些组件?
- python - 使用 sqrt AND ceil 筛选 Eratosthenes
- node.js - Mac OSX 上节点版本的矛盾
- python - 如何将混合(分类和数字)特征传递给sklearn中的决策树回归器?
- ionic-framework - 如何改变离子的滑动方向?
- javascript - 如何将 React 组件的状态重置为先前应用的状态?
- c - 什么更有效:从文件中读取或分配内存
- laravel - Laravel 应用程序和负载均衡器
- javascript - 如何替换“*”的所有实例
- c++ - 命令末尾的 C++ std::stringstream 空格