检测阵列中每个对象的变化。打字稿/角度2

时间:2017-07-05 05:55:07

标签: angular typescript primeng

我有一个人数组,我在primeng数据表中显示。每个对象都有这些字段(firstName,lastName和age)。每个字段对应一个表中的一列,其中一列显示每个对象的状态。状态指示表中的对象/行是否已更改。有两种状态"对象更改/不更改"

enter image description here

<p-dataTable [value]="persons" [editable]="true"  resizableColumns="true" reorderableColumns="true"> 
    <p-column header="Status">
      <ng-template pTemplate="body">
         <span [hidden]=true>Object Change</span>
       <span >Not Change</span>
      </ng-template>
    </p-column>
    <p-column field="firstName" header="First Name" [editable]="true"></p-column>
    <p-column field="lastName" header="Last Name" [editable]="true"></p-column>
    <p-column field="age" header="Age" [editable]="true">
      <ng-template let-col let-car="rowData" pTemplate="editor">
        <select class="form-control" [(ngModel)]="car[col.field]">
          <option [value]=12>12</option>
          <option [value]=14>14</option>
          <option [value]=23>23</option>
        </select>
      </ng-template>
    </p-column>
</p-dataTable>


<p>{{persons | json}}</p>

我将primeng datatable列设置为true,以便用户可以编辑表中的数据。现在,我想检测每个对象是否已更改。如果对象已经改变,我想要&#34;状态&#34;列设置为&#34;对象更改&#34;。我想在数组中的每个对象中应用此条件。有没有办法检测数组中每行/对象的更改。我为此创建了一个plunkr。 http://plnkr.co/edit/x8Sdgz?p=preview

2 个答案:

答案 0 :(得分:0)

可能的解决方案是替换

[(ngModel)]="car[col.field]"

通过

[ngModel]="car[col.field]" (ngModelChange)="onCarChange($event)"

这样你可以附加你想要的任何逻辑

答案 1 :(得分:0)

我将检测该领域的变化。如果要拦截任何字段上的每个更改,您必须在数据表中的每一列上使用相同的模式(ng-template)。

亲切的问候