ngModel 无法使用带有本机复选框的 primeng table
ngModel doesn't work using primeng table with native checkbox
我正在使用带有本机复选框和 ngModel 的 primeng editable table。
<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
的值,但是当我单击复选框时,事件绑定不起作用,值没有单击后更改。
有人知道为什么吗?
请使用 change
事件尝试这种方式
<input type="checkbox" [(ngModel)]="isChecked" (change)="checkValue(isChecked?'A':'B')" />
checkValue(event: any){
console.log(event);
}
这是一个代码
link
[(ngModel)] 在多种情况下不是很稳定。有时它会立即起作用,有时它需要一些时间。正确的方法是使用 [(ngModel)] 和 (ngModelChange)
<input type="checkbox" [(ngModel)]="rowData.active" (ngModelChange)="fun(rowData)">
应该注意:
如果(ngModelChange)在[(ngModel)]前面,则取变化前的值,否则取变化后的值
我正在使用带有本机复选框和 ngModel 的 primeng editable table。
<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
的值,但是当我单击复选框时,事件绑定不起作用,值没有单击后更改。
有人知道为什么吗?
请使用 change
事件尝试这种方式
<input type="checkbox" [(ngModel)]="isChecked" (change)="checkValue(isChecked?'A':'B')" />
checkValue(event: any){
console.log(event);
}
这是一个代码 link
[(ngModel)] 在多种情况下不是很稳定。有时它会立即起作用,有时它需要一些时间。正确的方法是使用 [(ngModel)] 和 (ngModelChange)
<input type="checkbox" [(ngModel)]="rowData.active" (ngModelChange)="fun(rowData)">
应该注意:
如果(ngModelChange)在[(ngModel)]前面,则取变化前的值,否则取变化后的值