使用Mat-table进行内联文本编辑:

时间:2019-03-20 18:24:53

标签: angular inline mat-table

有没有人有一个很好的解决方案,可以向列中添加内联文本编辑,您可以在其中编辑和保存并使用mat table重新编辑,如本示例所示: https://material.io/design/components/data-tables.html#behavior 看来它仍然是gitHub上的未解决问题:https://github.com/angular/material2/issues/5982

enter image description here

2 个答案:

答案 0 :(得分:1)

在您的matColumnDef内部,您应该有一个<th></th>和一个<td></td>,只需使用反应形式将输入添加到<td></td>中即可。


如果您希望与示例实际相同,则可以在位置相对元素内创建一个position absolute元素,该元素将在单击,接收和输入以及在经过某些逻辑后关闭时提示更新formControl。

仍然,您需要formControls并编辑matColumnDef。

示例来自github请求的链接

      <ng-container matColumnDef="time">
        <th mat-header-cell *matHeaderCellDef> time </th>
        <td mat-cell *matCellDef="let element; let i = index" [formGroupName]="i"> 
            <input type="text" formControlName="time" placeholder="Time"> 
        </td>
      </ng-container>

答案 1 :(得分:1)

您提到的git hub问题有一些人们想出的实现方式。

您可以从中获得启发:

https://stackblitz.com/edit/material2-beta12-es19ub?file=app%2Fapp.component.html

或此: https://stackblitz.com/edit/angular-g5u7cy?file=app%2Ftable-editing-example.html

我将遍历github问题,以了解人们提出的不同选择。