Отключить / включить выбор на основе содержимого строки PrimeNG TurboTable или TreeTable

С помощью p-treeTable я могу включить выбор для всех строк на основе selectionMode = "single". Теперь я хочу отключить выбор для строк, которые не предназначены для выбора.

PrimeNG 7, угловой 7.

Если я удалю [ttRow]="rowNode" [ttSelectableRow]="rowNode" из шаблона тела tr, все строки будут недоступны для выбора.

<p-treeTable [value]="nodes" [columns]="columns" selectionMode="single" 
[(selection)]="selectedNode" dataKey="id" >

...

   <ng-template pTemplate="body" let-rowNode let-rowData="rowData" let-columns="columns">
      <tr [ttRow]="rowNode" [ttSelectableRow]="rowNode">
        <td *ngFor="let col of columns">            
          {{ rowData[col.field] }}
        </td>
      </tr>
    </ng-template>
  </p-treeTable>

Теперь мне нужна проверка на основе данных строки, например. rowData.selectable', to enable/disable row selection based on the outcome ofrowData.selectable`. Есть идеи, как этого добиться?


person Carsten Luxig    schedule 17.01.2019    source источник


Ответы (1)


Я знаю, что это старый вопрос. Но как насчет чего-то вроде:

<tr [ttRow]="rowNode" [ttSelectableRow]="rowNode" *ngIf=rowData.selectable>
    <td *ngFor="let col of columns">            
      {{ rowData[col.field] }}
    </td>
</tr>

<tr [ttRow]="rowNode" *ngIf=!rowData.selectable>
    <td *ngFor="let col of columns">            
      {{ rowData[col.field] }}
    </td>
</tr>
person Koen S    schedule 13.01.2020