Angular2 PrimeNG 编辑脏标志

Angular2 PrimeNG Editing dirty flag

我正在使用 PrimeNG 并将 table 作为 editable,但是我如何确定更改了哪些行,因为我没有看到任何类型的 "ng-dirty" 或除了 _$visited 标志之外的其他脏标志集,它只显示单元格被单击。我希望能够一次保存所有 table 更改,并突出显示更改的行,而不是在每个单元格更改时保存。示例栏如下:

<p-dataTable [value]="parts">
<p-column field="partLength" header="Part Length" [editable]="true" >

谢谢

它有一个事件 (onRowSelect)="myMethod($event)" 其中 $event 是选中的行

<p-dataTable (onRowSelect)="myMethod($event)">...</p-dataTable>

您应该使用数据表的 onEdit 事件,其中 returns 一个包含数据和列作为属性的事件对象

 <p-dataTable [editable]="true" (onRowSelect)="rowSelected($event)">
  .....
 </p-dataTable>

 editing(event){

    if(_.findIndex(this.editedItems,event.data)){
    console.log(_.findIndex(this.editedItems,event.data);
    this.editedItems.push(event.data);
    console.log(this.editedItems);
    }

LIVE DEMO

我一直在寻找关于获取编辑值的答案最终调用了 onEditComplete 和 onEdit 事件,如下所示:

<p-datatable [value]="parts" [editable]="true" (onEditComplete)="cellEdit($event.data)" (onEdit)="cellDirty($event)"

但是,我仍然无法弄清楚如何突出显示已编辑的单个单元格。我可以通过将它们存储在数组中来获取已更改的行和列的索引,但是,如何根据这些行和列索引的列表设置单元格的样式?或者有没有更简单的方法来直观地显示单元格已更改?

根据 primeng 使用 turbotable。数据表已弃用

要在单元格内联编辑中捕获事件,您可以执行以下操作:-

<input type="text" [(ngModel)]="item[col.name]"  (keydown)="onEditColumnInline($event, item['id'])">

不要忘记将以下内容放入 like :-

<td pEditableColumn="item">

在组件内部,然后您可以使用 debouncetime() 或键码来优化调用,这样您就不会在每次按下键时调用服务

希望对您有所帮助,谢谢