1

以下のようなチェックボックスを選択した TurboTable 定義があります。

<p-table [columns]="cols" [value]="dataJSONArray" [paginator]="true" [rows]="10" [scrollable]="true"
  [(selection)]="dtSelectedRows" dataKey="OrderId">
  <ng-template pTemplate="colgroup" let-columns>
    <colgroup>
      <col style="width: 3em">
      <col *ngFor="let col of columns" [ngStyle]="{'width': col.widthPx + 'px'}">
    </colgroup>
  </ng-template>
  <ng-template pTemplate="header">
    <tr>
      <th>
        <p-tableHeaderCheckbox></p-tableHeaderCheckbox>
      </th>
      <th *ngFor="let col of cols">{{col.header}}</th>
    </tr>
  </ng-template>
  <ng-template pTemplate="body" let-rowData let-col>
    <tr [pSelectableRow]="rowData">
      <td>
        <p-tableCheckbox [value]="rowData"></p-tableCheckbox>
      </td>
...

dtSelectedRows 配列 (選択) を変更すると、何も起こりません (dtSelectedRows 配列は変更されますが、チェックされた列は変更されません - チェックされたまま -):

this.dtSelectedRows.splice(indx, 1);

しかし、配列を dtSelectedRows 配列に割り当てると、変更が有効になります。

let dummySelectedRow = Object.assign([], this.dtSelectedRows);
dummySelectedRow.splice(indx, 1);
this.dtSelectedRows = dummySelectedRow;
4

1 に答える 1