ngModel无法将Primeng表与本机复选框一起使用

时间:2019-11-20 05:45:56

标签: angular checkbox angular-ngmodel primeng-datatable ngmodel

我正在使用带有本地复选框和ngModel的primeng可编辑表。

<p-table id="resultTable" [columns]="cols" [value]="results" [rowTrackBy]="trackByFunction" 
scrollable="true" selectionMode="single" [selection]="selected" (onRowSelect)="onRowSelect($event.data)">
  ...
  <ng-template pTemplate="body" let-rowData let-rowIndex="rowIndex">
    <tr [pSelectableRow]="rowData">
      ...
      <td>
        <div class="text-center">
          <input type="checkbox" [(ngModel)]="rowData.active">
        </div>
      </td>
      ...
    </tr>
  </ng-template>
  ...
</p-table>

以某种方式,[[ngModel)]不起作用,我只能获得rowData.active的值,但是当我单击复选框时,事件绑定不起作用,该值在之后没有改变点击。

有人知道为什么吗?

2 个答案:

答案 0 :(得分:0)

请使用change事件尝试这种方式

<input type="checkbox" [(ngModel)]="isChecked" (change)="checkValue(isChecked?'A':'B')" />

checkValue(event: any){
  console.log(event);
 }

这是一个代码 link

答案 1 :(得分:0)

[(ngModel)]在多种情况下不是很稳定。有时它会立即起作用,有时需要一些时间。正确的方法是将[(ngModel)]与(ngModelChange)一起使用

<input type="checkbox" [(ngModel)]="rowData.active" (ngModelChange)="fun(rowData)">

应注意:

如果(ngModelChange)在[(ngModel)]前面,它将获得更改前的值,否则将获得更改后的值