Angular2 PrimeNG编辑脏标志

时间:2017-04-21 18:32:06

标签: angular primeng

我正在使用PrimeNG并将表格编辑为可编辑,但我如何识别哪些行已更改,因为除了_ $ visited标志之外我没有看到任何类型的“ng-dirty”或其他脏标志集这只显示单元格被点击。我希望能够一次保存所有表更改,并突出显示已更改的行,而不是在每个单元格更改时保存。样本列如下:

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

由于

4 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

您应该使用数据表的onEdit事件,该事件返回包含数据和列作为属性的事件对象

 <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

答案 2 :(得分:0)

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

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

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

不要忘记将以下内容写成: -

<td pEditableColumn="item">

在内部组件中,您可以使用debouncetime()或密钥代码来优化呼叫,这样您就不会在每个keydown上调用该服务

希望这有帮助,谢谢

答案 3 :(得分:-1)

它有一个事件(onRowSelect)=&#34; myMethod($ event)&#34;其中$ event是选中的行

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