primeng:数据表未异步绑定选择 属性
primeng : Datatable not binding selection property asychronously
我在我的一个组件的 p-dialog 中显示 p-datatable。如果用户之前 selected 了此 table 中的几行,我需要在用户下次访问 p-dialog 时显示它们 selected。
我正在将一组 selected 项目传递给 p-datatable 的 selection
属性。但是,这些行未显示在屏幕上 select。
如果我重新 select 相同的行,我会在 selection
属性 中得到它们两次,这意味着预先 selected 的行正确地保留在selection
属性 但不知何故未绑定到 html
.
我试图将整个 p-dialog 包装在一个 *ngIf
中,希望它仅在收到数据后创建,但没有任何区别。
如何才能将 selected 行绑定到 p-datatable。
<div *ngIf="data && data.length" class="col-sm-12">
<p-dataTable #ListRef [value]="data" rowHover="true" [multiSortMeta]="multiSortMeta" (onRowSelect)="onSelect($event)" [(selection)]="selectedData" (onRowUnselect)="onUnSelect($event)">
<p-column field="launchDate" header="Launch Date" [sortable]="true"></p-column>
<p-column field="endDate" header="End Date" [sortable]="true"></p-column>
</p-dataTable>
</div>
我也尝试过使用 ViewChild
获取引用并将值分配给那里的 selection
属性。那也没有区别。
但是我注意到,如果我的 ngOnInit
方法中已经有 data
和 selectedData
,问题就不会出现。
有什么想法吗?
虽然我一开始没注意到,但后来我发现有一个属性 dataKey
可以赋值用于比较所选行与总行数。这对我有用。唯一的变化是分配一个字段名称以唯一匹配行
<p-dataTable #fundListRef [value]="data" rowHover="true" [(selection)]="selectedData" (onRowSelect)="onFundSelect($event)" (onRowUnselect)="onFundUnSelect($event)"
dataKey="id">
p-datatable 文档说它使用了地图比较,这在某种程度上不适用于我的情况。
我在我的一个组件的 p-dialog 中显示 p-datatable。如果用户之前 selected 了此 table 中的几行,我需要在用户下次访问 p-dialog 时显示它们 selected。
我正在将一组 selected 项目传递给 p-datatable 的 selection
属性。但是,这些行未显示在屏幕上 select。
如果我重新 select 相同的行,我会在 selection
属性 中得到它们两次,这意味着预先 selected 的行正确地保留在selection
属性 但不知何故未绑定到 html
.
我试图将整个 p-dialog 包装在一个 *ngIf
中,希望它仅在收到数据后创建,但没有任何区别。
如何才能将 selected 行绑定到 p-datatable。
<div *ngIf="data && data.length" class="col-sm-12">
<p-dataTable #ListRef [value]="data" rowHover="true" [multiSortMeta]="multiSortMeta" (onRowSelect)="onSelect($event)" [(selection)]="selectedData" (onRowUnselect)="onUnSelect($event)">
<p-column field="launchDate" header="Launch Date" [sortable]="true"></p-column>
<p-column field="endDate" header="End Date" [sortable]="true"></p-column>
</p-dataTable>
</div>
我也尝试过使用 ViewChild
获取引用并将值分配给那里的 selection
属性。那也没有区别。
但是我注意到,如果我的 ngOnInit
方法中已经有 data
和 selectedData
,问题就不会出现。
有什么想法吗?
虽然我一开始没注意到,但后来我发现有一个属性 dataKey
可以赋值用于比较所选行与总行数。这对我有用。唯一的变化是分配一个字段名称以唯一匹配行
<p-dataTable #fundListRef [value]="data" rowHover="true" [(selection)]="selectedData" (onRowSelect)="onFundSelect($event)" (onRowUnselect)="onFundUnSelect($event)"
dataKey="id">
p-datatable 文档说它使用了地图比较,这在某种程度上不适用于我的情况。