Angular 如何禁用Priming datatable中的复选框

Angular 如何禁用Priming datatable中的复选框,angular,typescript,primeng,primeng-datatable,Angular,Typescript,Primeng,Primeng Datatable,我需要根据条件禁用Priming datatable中的几个复选框: 例如: <p-column *ngFor="let col of cols; let i = index" [field]="col.field" [header]="col.header" [styleClass]="col.class" selectionMode="{{col.header==fields.BULKACTIONS.header ? 'multiple': ''}}" [disabled]="isDi

我需要根据条件禁用Priming datatable中的几个复选框:

例如:

<p-column *ngFor="let col of cols; let i = index" [field]="col.field" [header]="col.header" [styleClass]="col.class" selectionMode="{{col.header==fields.BULKACTIONS.header ? 'multiple': ''}}" [disabled]="isDisabled()">

但这似乎不起作用。primeng论坛上有相同的功能请求:


有人对此进行了攻击吗?

您可以使用模板选项

<p-column>
       <ng-template let-col let-car="rowData" pTemplate="body">
       <input type="checkbox" [disabled]="true"/>
       </ng-template>
</p-column>
演示版也相应更新

更新1:检查和全部检查

<p-dataTable (onRowSelect)="rowSelected($event)"

   [value]="tableData" [responsive]="true">
     <p-column>
     <ng-template pTemplate="header">
           <input type="checkbox" [ngModel]="checkedAll" (ngModelChange)="checkAll($event)"/>
    </ng-template>
       <ng-template let-col let-car="rowData" pTemplate="body">
           <input type="checkbox" *ngIf="!car.disabled" [(ngModel)]="car.status" (change)="checked(car)"/>
           <input type="checkbox" *ngIf="car.disabled" [checked]="false" disabled (change)="checked(car)"/>
       </ng-template>
     </p-column>
    <p-column field="orderNumber" [header]="'Order Number'"></p-column>
    <p-column field="country" [header]="'Country'"></p-column>
</p-dataTable>

如何将它们添加到selectedRows数组中,该数组由多选选项完成通过创建附加属性来处理复选框的更改事件。我正在这样做。selectedRows.push(行);在更改事件中,行被选中,但复选框未被选中,您能告诉我们,如何通过编程将它们选中吗?在模型中创建属性的ID?您能在标题中提供一个复选框来选择/取消选择表吗rows@halfer谢谢你的反馈。我会在以后的帖子中记住这一点
 checked(carValue){
    console.log(carValue)
    if(carValue.status){
      this.selectedData.push(carValue);
    }else {
   _.remove(this.selectedData, function(val) {return val === carValue;})      

    }
<p-dataTable (onRowSelect)="rowSelected($event)"

   [value]="tableData" [responsive]="true">
     <p-column>
     <ng-template pTemplate="header">
           <input type="checkbox" [ngModel]="checkedAll" (ngModelChange)="checkAll($event)"/>
    </ng-template>
       <ng-template let-col let-car="rowData" pTemplate="body">
           <input type="checkbox" *ngIf="!car.disabled" [(ngModel)]="car.status" (change)="checked(car)"/>
           <input type="checkbox" *ngIf="car.disabled" [checked]="false" disabled (change)="checked(car)"/>
       </ng-template>
     </p-column>
    <p-column field="orderNumber" [header]="'Order Number'"></p-column>
    <p-column field="country" [header]="'Country'"></p-column>
</p-dataTable>
  checked(carValue){
    if(carValue.status){
      this.selectedData.push(carValue);
    }else {
     _.remove(this.selectedData, function(val) {return val === carValue;})      
    }
    console.log(this.selectedData)

  }
  checkAll(event){

    _.forEach(this.tableData =>(item){
      if(event){
      item.status=true;
      }else {
        item.status=false;
      }

    });

    this.selectedData= this.tableData;
    if(!event){
      this.selectedData = [];
    }
    console.log(this.selectedData);
  }