Angular 2 Reactive Forms 仅从更改的控件中获取值

2023-12-11

我有一个包含所有输入的动态创建的表单。我正在订阅更改,但是当某个控件发生更改时,我会从所有控件中获取值,因此我真的不知道哪个控件发生了更改。是否可以使用 valueChanges 函数仅从更改的控件中获取更改的值?

该表单非常大,因此将每个控件都订阅到 valueChanges 不是一种选择。

该函数目前如下所示:

checkForValueChanges() {
    this.metadataForm.valueChanges.subscribe(controls => {
        // how to get the changed control form name here ?
    });
}

由于项目很大,我只是举了一个简单的例子来说明我的问题:StackBlitz 示例您可以在控制台中看到我得到的结果是所有控件,而不仅仅是更改的控件。


我能想到的最干净的方法是动态订阅所有表单控件:

const subscriptions = [];
for (const key of Object.keys(this.metadataForm.controls)) {

    const subscription = this.metadataForm.controls[key].valueChanges
    .subscribe(value => console.log('value :' + value[key] + ' and key : ' + key));

    subscriptions.push(subscription);
}

我添加了一组订阅来处理销毁时的取消订阅。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2 Reactive Forms 仅从更改的控件中获取值 的相关文章

随机推荐

  • MovieClip(根)不工作。如何从影片剪辑访问根变量?闪存AS3

    好吧 我有一个简单的 flash 文件 因为我试图完成从影片剪辑内的主舞台访问变量 我从谷歌找到的所有东西都指向MovieClip root 但它不适合我 在主时间轴上 var MyName String MyName kenny 然后我有
  • 下载 Jfrog PHP 私人神器时出现 302 重定向

    Downloading connecting Downloading connecting Update failed The https abc jfrog io artifactory api composer php local di
  • PHP 中的双下划线

    这几行 PHP 代码中的双下划线是什么意思 WPLD Trans Yes Yes WPLD Domain WPLD Trans No No WPLD Domain 您似乎正在使用 WordPress wp includes l10n php
  • 通过 DI 配置 Envers RevisionListener

    为了向我们的应用程序添加审计跟踪 我们决定使用 NHibernate Envers 为了允许应用程序特定的修订跟踪 DefaultRevisionEntity使用用户特定数据进行了扩展 public virtual void NewRevi
  • 神经网络不接受灰度图像

    我按照这个教程进行操作 https www pyimagesearch com 2017 09 11 object detection with deep learning and opencv 我更改了这部分 在将图像输入插入神经网络之前
  • 查找不在另一个表中的多个字段的记录

    假设我有 2 张桌子 tb1 tb2 具有以下模式 CREATE TABLE tb1 col1 INT NOT NULL col2 TEXT NOT NULL col3 TEXT NOT NULL col4 REAL 我如何查找记录tb1哪
  • 一旦任何一个进程在 python 中找到匹配项,如何让所有 pool.apply_async 进程停止

    我有以下代码 它利用多重处理来迭代一个大列表并找到匹配项 一旦在任何一个进程中找到匹配项 如何才能停止所有进程 我见过一些例子 但似乎没有一个适合我在这里所做的事情 usr bin env python3 5 import sys iter
  • 禁用整个应用程序的代理?

    自从升级到 Visual Studio 2010 以来 我遇到了一个问题 任何类型的第一个 Web 请求 WebRequest WebClient 等 在完成之前挂起大约 20 秒 随后的呼叫工作很快 我已将问题范围缩小到代理问题 如果我手
  • 是否可以在 Python 中访问 GetLongPathName() Win32 API?

    我需要将 8 3 约定中的路径转换为完整路径 在 Perl 中 我可以使用Win32 GetLongPathName 正如指出的如何使用 Perl 从 8 3 DOS 路径获取完整的 Win32 路径 但是 我需要用 Python 来做 U
  • jquery - 查找我引用的元素的名称

    在代码中 我在 Jquery 中引用了 DOM 元素 我怎么知道它的id 这可能违反直觉 但我需要知道这一点 以便我可以对另一个具有相似名称的元素进行一些操作 this attr id
  • 解构存在类型

    我使用存在类型作为包装器 在我的代码中 当我知道封闭类型时 我想用它做一些特定于封闭类型的事情 这是我能得到的最接近的 LANGUAGE ExistentialQuantification class Agent a where agent
  • 用特殊字符填充文本区域

    我正在使用用户之前的输入填充文本区域 这是从数据库中提取并设置为文本区域服务器端的内容 我们似乎遇到了拼写错误和特殊字符组合的问题 如果用户输入 6最初 当我尝试用它填充我的文本区域时 它只是呈现一个小正方形 就像它解释字符编码值一样 使用
  • 针对非类型参数的特定值的模板代码优化。

    template
  • 查找近似重复记录的技术

    我正在尝试清理一个数据库 多年来该数据库已获取许多重复记录 且名称略有不同 例如 在公司表中 有 Some Company Limited 和 SOME COMPANY LTD 之类的名称 我的计划是将有问题的表导出到 R 中 将名称转换为
  • 如何在命令行中使用 Robocopy 复制带时间戳的文件

    以下是我将计算机中的文件复制以及从计算机复制到网络的命令 ROBOCOPY K Builds F Builds E COPY DAT ROBOCOPY E K Shan Khan E COPY DAT 我怎么能在目标文件夹中创建时间戳仅在复
  • 如何使用txt文件作为命令行参数?

    我有一个像这样的 txt 文件 6 4 1 2 2 3 3 4 4 5 1 2 4 5 如何在 C 中使用它作为命令行参数 如果您打算提供您的程序数据program exe lt data txt 这就是所谓的从标准输入读取 您可以通过 N
  • 如何接收 OS X 中文件系统更改的通知?

    在 Windows 中 我可以使用 FindNextChangeNotification API 来监视文件或文件夹的更改 例如 我可以监视文件夹并在添加或删除文件时收到通知 OS X 上有类似的 API 吗 Mac OS X v10 5
  • BZIP2块标头:1AY&SY

    这是关于BZIP2的问题存档格式 任何BZIP2存档都由文件标头 一个或多个块和尾巴结构组成 所有块应从 1AY SY 开始 pi号的BCD编码数字为6个字节 0x314159265359 根据BZIP2的来源 A 6 byte block
  • VBA中MSSQL“走”的正确使用

    我即将运行一个使用 MSSQL 编写的批处理 如下所示 create function xy end go create function2 xy end go 然后 我将它保存在一个文件中 我的宏将其读入一个字符串并使用 ADO 尝试运行
  • Angular 2 Reactive Forms 仅从更改的控件中获取值

    我有一个包含所有输入的动态创建的表单 我正在订阅更改 但是当某个控件发生更改时 我会从所有控件中获取值 因此我真的不知道哪个控件发生了更改 是否可以使用 valueChanges 函数仅从更改的控件中获取更改的值 该表单非常大 因此将每个控