我从API获取数据,并将其呈现在 p-table
中之后,我以编程方式触发表过滤(默认过滤器)。
我遇到的问题是表格是在没有过滤器的情况下加载和渲染的,并且在几毫秒之后会应用过滤器,并且表格会重新渲染。
有没有办法让事件触发Prime Table的加载?或者以某种方式延迟它。
模板:
select Demog.ID, Demog.[Long Term Date]
from Demog
where (@LTPD IS NULL)
or (@LTPD = -1 AND Demog.[Long Term Date]<=GetDate())
or (@LTPD = 1 AND Demog.[Long Term Date]>=GetDate())
类别:
<p-table #tt class="table"[value]="myList">
....
<tr>
<th>
<p-dropdown appendTo="body" *ngSwitchCase="'state'" [options]="states"
(onChange)="tt.filter($event.value, 'state', 'equals')"></p-dropdown>
</th>
</tr>
....
</p-table>
答案 0 :(得分:1)
此过滤与您的标记相似,只有当您从api调用中获取数据时才会显示标记。
所以最好的决定和正确的方法是在then
回调中对你的数组进行排序,例如
this.myList = res.sort(yourCustomSortFunction)
;
据我了解你需要立即呈现,所以为什么不在模板渲染之前提前对它进行排序。