Angular Mat Table - 编辑单个列单元格

Angular Mat Table - Editing Individual column cells

我正在按照这个 stackblitz 演示在 Materials 中创建可编辑的列 Table - https://stackblitz.com/edit/angular-g5u7cy

以上示例使所有字段都可编辑,所以我一直在尝试使单个列单元格可编辑。

template :
<ng-container matColumnDef="location">
        <th mat-header-cell *matHeaderCellDef> Location </th>
        <td mat-cell *matCellDef="let element;let index = index">
          <mat-form-field floatLabel="never" 
          [ngClass]="editMode ? 'no-underline': ''">
         <input matInput [value]="element.workLocation" [(ngModel)]="element.workLocation" (click)="toggleEdit(index)" [readonly]="editMode && index == editableColumn">
         </mat-form-field>
         </td>
</ng-container>

ts toggle function: 
toggleEdit(index){
  this.editMode=false;
  this.editableColumn=index;
}

但是无法为要启用编辑的特定单元格设置只读属性, 不确定 [readonly]="editMode && index == editableColumn" 是否适用于多种条件。

Hari,考虑到示例中有两种类型的单元格

可编辑:

<mat-cell *matCellDef="let element">
    <mat-form-field floatLabel="never">
        <input matInput placeholder="Name" [value]="element.name" 
                 [(ngModel)]="element.name">
    </mat-form-field>
</mat-cell>

无可编辑内容

<mat-cell *matCellDef="let element">
   {{element.name}}
</mat-cell>

我能够通过三元运算符动态添加 [只读]​​ 属性

[readonly]="index == editableColumn ? 'false' : 'true'"

where editableColumn 你通过(点击)事件传递索引