问题标签 [reactive-forms]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 无法使用 Angular4 在对象数组中推送表单数据
我将表单放置在 Bootstrap 模型中,当用户单击提交按钮时,我想将表单数据推送到TaskList
.
但是,当用户单击表单中的提交按钮时,formdata 不会被推送到TaskList
并被重定向到另一个页面,例如Link和 ngSubmit 也不起作用。
如果我删除类型脚本文件中的“TaskList”推送代码,表单 ngSubmit
工作正常,我得到表单数据,两种情况下我都没有收到任何错误。
如何从我的表单中获取数据并推送到TaskList
数组 ob 对象。
TS:
HTML:
angular - Angular Reactive Form patchValue 后组验证器未启动
我将mydatepicker与以下自制帮助类一起使用:
createDateRangeGroup
在组件中使用如下:
我可以在屏幕上看到日期设置正确。但是,当我尝试它时,console.log(this.formGroup.get('dates'));
它清楚地显示了一个错误,{invalid: true}
即使我只是从下拉列表中重新选择完全相同的日期,该组也会自动生效。
我不做什么?
validation - 在实际状态更改后应用验证类 ng-valid 延迟一步
我在页面上有两个反应形式的输入控件(参见示例)。这是主要的模板部分:
当内容只有 4 个字符长时,两者都应该有效。当我编辑“隐藏控件”时,它会使用以下代码用新的掩码值填充其他控件(“PIN 码”):
问题是验证状态类(特别是ng-valid)不是在控制值更改后立即应用于“PIN码”,而是仅在下一个更改周期(当我输入第五个字母时)。所以“PIN 码”上的绿色有效指示只有在下次更改后才会出现(通常包含 3 或 5 个字母,而不是 4 个)。任何建议如何在值更改后立即应用验证类?
angular - Angular 2 中的 ReactiveForms 为我的可选字段生成带有空值或空对象的 JSON
我在角度 2 中遇到了反应式表单的问题。我想创建我的对象以将其发送到我的 API,但我的 ReactiveForms 也没有生成必需的字段和表单组。
如果我通过 http post 请求直接发送我的对象,我有这个 JSON:
但我希望这个 JSON 与 API 一致。(如果有空或 null 属性/对象,我会收到错误,因为字段存在但无效:
因为姓氏和地址是可选的。
我将 ReactiveForm 与 formBuilder 一起使用,但我不知道如何仅获取填充字段。
这就是我创建表单的方式:
为了欺骗我使用它,但它太脏了......:
它只允许我获取非空字段而不是空字段来生成我的 JSON。
如何在没有 null 或空值的情况下直接获得 JSON clean JSON?
angular - 在数组中创建具有不同验证的反应形式数组
我最近开始使用 Angular4 反应式表单,我想创建一个基于以下结构的表单数组
下面是 HTML 语法,我需要在值和系统中获取各自的输入值,并且使用将是基于系统的硬编码值和验证,实现这一点的任何建议都将非常有帮助
angular - Angular FormArray patchValue 错误:TypeError: value.forEach 不是函数 - 如何解决?
页面最初是作为模板驱动的表单编写的,但正在转换为响应式以添加自动保存功能。
在页面组件的构造函数中,我定义了响应式表单变量:
“行”是与此问题相关的字段。
在 ngInit 中,通过 Web api 发出请求以检索持久的表单数据。数据以行数组的形式检索,每行包含 6 个单元格的数组。第三个单元格将绑定到 FormControl,其他单元格将呈现为静态文本。
在 html 中:
根据评论和答案,我已经澄清了我的意图和代码。[谢谢@amal 和@DeborahK] 我现在只将每行中的一个数据单元格绑定到 FormControl,每行中的其他单元格显示为:{{cell}}
因此,我需要渲染 this.rows 的内容(如 html 所示)以及 this.form.rows。
我目前在理解如何实现这一点时遇到两个问题。在打字稿中,留下循环的最后块迭代创建行的 FormControls 的数据行,数组 faRows 精确地包含我所期望的,一个 FormArray 的 FormControls,并且每个都检索到它的正确关联保存值。但是,当尝试从 this.rows 复制数据以创建 form.rows 的 FormControls 时,我无法让 setValue 或 setControl 正常工作。这可能与html页面上FormControl的命名有关,这是我的第二个问题。
我不清楚如何引用表单变量以在html中动态创建formControlName。这是我想象的,但它不起作用。
angular - Angular ReactiveForms - 动态设置的验证器行为异常
我正在尝试向ReactiveForm
Angular 4 中的 a 添加动态验证。
我的问题是该SetValidators()
函数的行为出乎意料。
我想要这种行为:
输入字段可能为空,但如果用户想要输入内容,则输入值必须至少为 4 个字符长。
我不打算解释它现在的行为方式,因为我真的不知道它是如何运作的。
请看看这个 plunker。这很简单,并说明了我的问题。
我的问题是:我在这里做错了什么?这是正确的方法吗?我错过了什么吗?在逻辑中还是在 HTML 中?
angular - 在反应式表单中使用不同的根控件进行自定义验证
我有heroForm
其中包含表单数组entities
。每一项都是FormGroup
。
这是示例:
这是我向数组添加新组的方式:
这是我创建单个组的方式:
这是自定义验证功能:
现在我想遍历City
槽控件并比较它们的值。如果我发现城市名称出现了两次,我想返回错误。
问题是我不想比较相同的控件,我想跳过它。什么应该是准确的方法来做到这一点?
angular - Angular debounce 仅用于用户输入
我在 Angular2 中有一个反应式表单设置。在一个组件中,我订阅了具有 500 毫秒去抖动时间的表单控件的值更改,例如:
如果值是由代码而不是用户更改的,有没有办法跳过去抖动时间?或者有没有办法分割这两个事件?
angular - 以反应形式Angular 4在行中显示和输入值
“this.orders”是下面 API 的结果。我的问题是如何在 material_purchase_orders 下获取 material.name 并仅编辑其数量。你的解决方案是对的。我只是无法获得要编辑的这个 material.name 及其数量。
ts
JSON