primeng:数据表不是异步绑定选择属性

时间:2017-09-15 12:29:34

标签: angular datatable primeng primeng-datatable

我在我的一个组件中的p对话框中显示了一个p-datatable。如果用户之前从该表中选择了几行,我需要在用户下次访问p对话框时显示它们。

我将一些选定项目传递给p-datatable的selection属性。但是,屏幕上未显示选定的行。

如果我重新选择相同的行,我会在selection属性中得到它们两次,这意味着预先选择的行正确地保存在selection属性中,但不知何故没有绑定到{{1} }}

我试图将整个p对话框包装在html中,期望只有在收到数据后才创建它,但它没有任何区别。

如何将选定的行绑定到p-datatable。

*ngIf

我还尝试使用<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方法中已dataselectedData已经可用,则问题就不会出现。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

虽然我最初错过了它,但我后来发现有一个属性dataKey,可以将其分配用于将所选行与总行进行比较。这对我有用。唯一的变化是分配一个字段名称以唯一匹配行

<p-dataTable #fundListRef [value]="data" rowHover="true" [(selection)]="selectedData" (onRowSelect)="onFundSelect($event)" (onRowUnselect)="onFundUnSelect($event)"
         dataKey="id">

p-datatable文档说它使用的地图比较在某种程度上对我的情况不起作用。