2017-07-05 9 views
0

私はprimengデータテーブルに表示された人物配列を持っています。各オブジェクトには、これらのフィールド(firstName、lastName、age)があります。各フィールドは、テーブル内の列に対応し、各オブジェクトのステータスを表示する追加の列があります。ステータスは、テーブル内のオブジェクト/行に変更があるかどうかを示します。ある2つのステータス、ユーザがテーブル内のデータを編集できるように配列の各オブジェクトの変化を検出します。 Typescript/Angular 2

<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> 

enter image description hereは私がtrueに編集可能なprimengの​​DataTableの列を設定し、「オブジェクトの変更/変更しません」。さて、私は各オブジェクトが変更されたかどうかを検出したいと思います。オブジェクトが変更されている場合は、「ステータス」列を「オブジェクトの変更」に設定します。私は配列内の各オブジェクトにこの条件を適用したい。配列内の各行/オブジェクトの変更を検出する方法はありますか?これについてはplunkrを作成しました。 http://plnkr.co/edit/x8Sdgz?p=preview

答えて

0

可能な解決策は、あなたが、私は、フィールド上の変更を検出します

+0

オブジェクト全体の変化を検出するか、それはフィールド固有のものでしょうか。 ?私がしたいことは、オブジェクト/行のどのフィールドでも変更を検出することです。 – ilovejavaAJ

0

をしたい

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

によってあなたが任意のロジックを添付することができますこの方法を

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

を交換することです。任意のフィールドのすべての変更をインターセプトしたい場合は、データテーブル内のすべての列で同じパターン(ng-template)を使用する必要があります。

種類について

+0

私の問題は、別のテーブルに配置されるフィールドがあることです。私の場合は、フィールドが異なるテーブルに散在している人のリストがあります。一度に変更を検出する方法はありますか?私が望むフィールドの変更が何であれ、オブジェクトの変化を検出するには、 – ilovejavaAJ

関連する問題