首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对于MatTable中的输入字段,删除FormGroup中的FormArray行是不正确的

MatTable是Angular Material中的一个组件,用于展示表格数据。在使用MatTable时,我们通常会将表单数据与表格数据绑定,以便实现数据的双向绑定和表单验证。

FormGroup是Angular中的一个表单组,用于管理表单中的控件。FormArray是FormGroup的一种特殊类型,用于管理多个相同类型的表单控件。

如果我们在MatTable中的输入字段对应的行中执行删除操作,并试图直接从FormGroup的FormArray中删除该行,是不正确的做法。这是因为MatTable中的输入字段只是表格数据的展示,并不直接关联FormGroup中的FormArray。

正确的做法是,在FormGroup中的FormArray中找到对应的行,并通过FormGroup的removeAt方法来删除该行。具体步骤如下:

  1. 在组件中引入相关的表单模块和 MatTableDataSource:
代码语言:txt
复制
import { FormGroup, FormBuilder, FormArray } from '@angular/forms';
import { MatTableDataSource } from '@angular/material/table';
  1. 在组件的构造函数中创建表单和表格数据源:
代码语言:txt
复制
constructor(private fb: FormBuilder) {
  this.formGroup = this.fb.group({
    // 创建一个空的 FormArray
    formArray: this.fb.array([])
  });

  this.dataSource = new MatTableDataSource([]);
}
  1. 在表格中使用表格数据源和表单控件:
代码语言:txt
复制
<table mat-table [dataSource]="dataSource">
  <!-- 列定义 -->
  <ng-container matColumnDef="inputField">
    <th mat-header-cell *matHeaderCellDef> Input Field </th>
    <td mat-cell *matCellDef="let element; let i = index;">
      <!-- 使用 formArrayName 和 formControlName 绑定表单控件 -->
      <input formControlName="inputField" placeholder="Input Field" [value]="element.inputField">
    </td>
  </ng-container>

  <!-- 列绑定 -->
  <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
  1. 在添加/删除行时更新表单和表格数据源:
代码语言:txt
复制
// 添加行
addRow() {
  const formArray = this.formGroup.get('formArray') as FormArray;
  formArray.push(this.fb.group({
    inputField: [''] // 添加表单控件
  }));

  this.dataSource.data = formArray.controls; // 更新表格数据源
}

// 删除行
deleteRow(index: number) {
  const formArray = this.formGroup.get('formArray') as FormArray;
  formArray.removeAt(index);

  this.dataSource.data = formArray.controls; // 更新表格数据源
}

通过以上步骤,我们可以正确地在FormGroup的FormArray中添加和删除行,并且保持与MatTable的数据源的同步。这样,就能够正确地操作表格中的输入字段,并使其与表单数据关联起来。

推荐的腾讯云相关产品:由于题目要求不能提及具体的品牌商,无法给出腾讯云相关产品和链接。您可以参考腾讯云的云计算产品相关文档,以获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • .net题库第1-9章

    第一章 单项选择题 第1题 C#程序的执行过程是( ) 从程序的Main方法开始,到最后一个方法结束 (答案) 从程序的第一个方法开始,到最后一个方法结束 从程序的Main方法开始,到Main方法结束 从程序的第一个方法开始,到Main方法结束 得分: 0.0 /10.0 第2题 C#语言源代码文件的后缀名为( )。 .csP .cs (答案) .C .C# 得分: 10.0 /10.0 第3题 下面对Write()和WriteLine()方法的描述,( )是正确的。 WriteLine()方法在输出字符串的后面添加换行符 (答案) 使用Write()和WriteLine()方法输出数值变量时,必须要先把数值变量转换成字符串 使用不带参数的WriteLine()方法时,将不会产生任何输出 使用Write()输出字符串时,光标将会位于字符串的下一行 得分: 10.0 /10.0 第4题 C#语言经编译后得到的是( )。 机器指令 Microsoft中间语言指令 (答案) 本机指令 汇编指令 得分: 10.0 /10.0 第5题 C#中导入某一命名空间的关键字是( )。 include import using (答案) use 得分: 10.0 /10.0 第6题 在C#中不可作为注释的选项是( ) ‘ (答案) /// /和/ // 得分: 10.0 /10.0 第7题 Console标准的输入设备是( )。 打印机 屏幕 键盘 (答案) 鼠标 得分: 10.0 /10.0 第8题 下面对Read()和ReadLine()方法的描述,( )是错误的。 ReadLine()方法读取的字符不包含回车和换行符 使用Read()方法读取的字符包含回车和换行符 (答案) 只有当用户按下Enter键时,Read()和ReadLine()方法才会返回 Read()方法一次只能从输入流中读取一个字符 得分: 0.0 /10.0 第9题 CLR是一种( )。 API编程接口 开发环境 运行环境 (答案) 程序设计语言 得分: 10.0 /10.0 第10题 下列( )选项不是.NET框架可以创建的应用程序类型。 Windows应用 Web服务 控制台应用 MIS系统 (答案)

    01

    电脑蓝屏代码大全

    编号 代码 含意 0 0x00000000 作业完成。 1 0x00000001 不正确的函数。 2 0x00000002 系统找不到指定的档案。 3 0x00000003 系统找不到指定的路径。 4 0x00000004 系统无法开启档案。 5 0x00000005 拒绝存取。 6 0x00000006 无效的代码。 7 0x00000007 储存体控制区块已毁。 8 0x00000008 储存体空间不足,无法处理这个指令。 9 0x00000009 储存体控制区块地址无效。 10 0x0000000A 环境不正确。 11 0x0000000B 尝试加载一个格式错误的程序。 12 0x0000000C 存取码错误。 13 0x0000000D 资料错误。 14 0x0000000E 储存体空间不够,无法完成这项作业。 15 0x0000000F 系统找不到指定的磁盘驱动器。 16 0x00000010 无法移除目录。 16 0x00000010 无法移除目录。 17 0x00000011 系统无法将档案移到 其它的磁盘驱动器。 18 0x00000012 没有任何档案。 19 0x00000013 储存媒体为写保护状态。 20 0x00000014 系统找不到指定的装置。 21 0x00000015 装置尚未就绪。 22 0x00000016 装置无法识别指令。 23 0x00000017 资料错误 (cyclic redundancy check) 24 0x00000018 程序发出一个长度错误的指令。 25 0x00000019 磁盘驱动器在磁盘找不到 持定的扇区或磁道。 26 0x0000001A 指定的磁盘或磁盘无法存取。 27 0x0000001B 磁盘驱动器找不到要求的扇区。 28 0x0000001C 打印机没有纸。 29 0x0000001D 系统无法将资料写入指定的磁盘驱动器。 30 0x0000001E 系统无法读取指定的装置。 31 0x0000001F 连接到系统的某个装置没有作用。 32 0x00000020 文件被另一进程使用中不能访问The process cannot access the file because it is being used by another process. 33 0x00000021 档案的一部份被锁定, 现在无法存取。 34 0x00000022 磁盘驱动器的磁盘不正确。 请将 %2 (Volume Serial Number: %3) 插入磁盘机%1。 36 0x00000024 开启的分享档案数量太多。 38 0x00000026 到达档案结尾。 39 0x00000027 磁盘已满。 50 0x00000032 不支持这种网络要求。 51 0x00000033 远程计算机无法使用。 52 0x00000034 网络名称重复。 53 0x00000035 网络路径找不到。 54 0x00000036 网络忙碌中。 55 0x00000037 特殊的网络资源或设备不可再使用The specified network resource or device is no longer available. 56 0x00000038 网络BIOS命令已达到限制The network BIOS command limit has been reached. 57 0x00000039 网络配接卡发生问题。 58 0x0000003A 指定的服务器无法执行要求的作业。 59 0x0000003B 网络发生意外错误。 60 0x0000003C 远程配接卡不兼容。 61 0x0000003D 打印机队列已满。 62 0x0000003E 服务器的空间无法储存等候打印的档案。 63 0x0000003F 等候打印的档案已经删除。 64 0x00000040 指定的网络名称无法使用。 65 0x00000041 拒绝存取网络。 65 0x00000041 拒绝存取网络。 66 0x00000042 网络资源类型错误。 67 0x00000043 网络名称找不到。 68 0x00000044 超过区域计算机网络配接卡的名称限制。 69 0x00000045 超过网络 BIOS 作业阶段的限制。 70 0x00000046 远程服务器已经暂停或者正在起始中。 71 0x00000047 由于联机数目已达上限,此时无法再联机到这台远程计算机。 72 0x00000048 指定的打印机或磁盘装置已经暂停作用。 80 0x00000050 档案已经存在。 82 0x00000052 无法建立目录或档案。 83 0x00000053 INT 2484 0x00000054 处理这项要求的储存体无法使用。 85 0x00000055 近端装置名称已经在使用中。 86 0x000

    02

    部分蓝屏报错代码及含意

    0 0x0000 作业完成。 1 0x0001 不正确的函数。 2 0x0002 系统找不到指定的档案。 3 0x0003 系统找不到指定的路径。 4 0x0004 系统无法开启档案。 5 0x0005 拒绝存取。 6 0x0006 无效的代码。 7 0x0007 储存体控制区块已毁。 8 0x0008 储存体空间不足,无法处理这个指令。 9 0x0009 储存体控制区块位址无效。 10 0x000A 环境不正确。 11 0x000B 尝试载入一个格式错误的程式。 12 0x000C 存取码错误。 13 0x000D 资料错误。 14 0x000E 储存体空间不够,无法完成这项作业。 15 0x000F 系统找不到指定的磁盘。 16 0x0010 无法移除目录。 17 0x0011 系统无法将档案移到 其他的磁盘。 18 0x0012 没有任何档案。 19 0x0013 储存媒体为防写状态。 20 0x0014 系统找不到指定的装置。 21 0x0015 装置尚未就绪。 22 0x0016 装置无法识别指令。 23 0x0017 资料错误 (cyclic redundancy check) 24 0x0018 程式发出一个长 度错误的指令。 25 0x0019 磁盘在磁盘找不到 持定的磁区或磁轨。 26 0x001A 指定的磁盘或磁片无法存取。 27 0x001B 磁盘找不到要求的磁区。 28 0x001C 打印机没有纸。 29 0x001D 系统无法将资料写入指定的磁盘。 30 0x001E 系统无法读取指定的装置。 31 0x001F 连接到系统的某个装置没有作用。 32 0x0020 The process cannot access the file because it is being used by another process。 33 0x0021 档案的一部份被锁定,现在无法存取。 34 0x0022 磁盘的磁片不正确。 请将 %2 (Volume Serial Number: %3) 插入磁 碟 机%1。 36 0x0024 开启的分享档案数量太多。 38 0x0026 到达档案结尾。 39 0x0027 磁盘已满。 50 0x0032 不支援这种网络要求。 51 0x0033 远端电脑无法使用。 52 0x0034 网络名称重复。 53 0x0035 网络路径找不到。 54 0x0036 网络忙碌中。 55 0x0037 The specified network resource or device is no longer available。 56 0x0038 The network BIOS command limit has been reached。 57 0x0039 网络配接卡发生问题。 58 0x003A 指定的服务器无法执行要求的作业。 59 0x003B 网络发生意外错误。 60 0x003C 远端配接卡不相容。 61 0x003D 打印机伫列已满。 62 0x003E 服务器的空间无法储存等候列印的档案。 63 0x003F 等候列印的档案已经删除。 64 0x0040 指定的网络名称无法使用。 65 0x0041 拒绝存取网络。 66 0x0042 网络资源类型错误。 67 0x0043 网络名称找不到。 68 0x0044 超过区域电脑网络配接卡的名称限制。 69 0x0045 超过网络BIOS作业阶段的限制。 70 0x0046 远端服务器已经暂停或者正在起始中。 71 0x0047 由於连线数目已达上限,此时无法再连线到这台远端电脑。 72 0x0048 指定的打印机或磁盘装置已经暂停作用。 80 0x0050 档案已经存在。 82 0x0052 无法建立目录或档案。 83 0x0053 INT 24 失败 84 0x0054 处理这项要求的储存体无法使用。 85 0x0055 近端装置名称已经在使用中。 86 0x0056 指定的网络密码错误。 87 0x0057 叁数错误。 88 0x0058 网络发生资料写入错误。 89 0x0059 此时系统无法执行其他行程。 100 0x0064 无法建立其他的系统semaphore。 101 0x0065 属於其他行程专用的semaphore 。 102 0x0066 semaphore已经设定,而且无法关闭。 103 0x0067 无法指定semaphore 。 104 0x0068 在岔断时间无法要求专用的semaphore 。 105 0x0069 此semaphore先前的拥有权已经结束。 106 0x006A 请将磁片插入 %1。 107 0x006B 因为

    01
    领券