Angular 使用Mat表格进行内联文本编辑:

Angular 使用Mat表格进行内联文本编辑:,angular,inline,mat-table,Angular,Inline,Mat Table,是否有人能很好地解决将内联文本编辑添加到一列中的问题,您可以在该列中使用mat table进行编辑、保存和重新编辑,如本例所示: 在gitHub上,这似乎仍然是一个悬而未决的问题: 在matColumnDef中,您应该有一个和一个,只需使用反应式表单将输入添加到 如果您希望它实际上与材质示例相同,则可以在中的定位相对元素内创建一个位置绝对元素,该元素将在单击、接收和输入时进行投影,并在某些逻辑后关闭,以更新formControl 不过,您仍然需要formControls和编辑matColumn

是否有人能很好地解决将内联文本编辑添加到一列中的问题,您可以在该列中使用mat table进行编辑、保存和重新编辑,如本例所示: 在gitHub上,这似乎仍然是一个悬而未决的问题:


在matColumnDef中,您应该有一个
和一个
,只需使用反应式表单将输入添加到


如果您希望它实际上与材质示例相同,则可以在中的定位相对元素内创建一个位置绝对元素,该元素将在单击、接收和输入时进行投影,并在某些逻辑后关闭,以更新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>

时间

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

您可以从中获得灵感:

或者这个:


我会仔细研究github问题,看看人们提出的不同选择。

很抱歉,我有点过于笼统。我知道那个部分,但你如何使它可编辑和保存。与编辑输入时显示的内容类似,但编辑完成后只显示注释。您可以添加
(keydown.enter)=“onUpdate()”
,以便在输入中按enter键进行更新。。。或者,如果您想在键入时编辑,请添加(键控),或者(模糊)在焦点丢失时编辑,或者(更改)在输入更改时编辑。。。等试试这个,告诉我它是否有效!edit:onUpdate()应该调用
formControl.setValue()
,它应该直接从DOM或formControl获取输入。两种方法都很好谢谢我会试试的。你有没有像stackblitz这样的工作示例?很遗憾,我的工作示例是关于与工作相关的项目,我手头没有,也不能公开分享(不过我只会分享重要的部分)…下面是工作示例