问题标签 [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.

0 投票
2 回答
420 浏览

angular - 反应形式的嵌套标题和表格

我有几个类别,每个类别都有几种材料/产品。我有一个问题,因为当我决定删除一个类别的材料/产品时,我也删除了另一个类别的材料/产品?如何使用反应形式来解决这个问题?我将如何独立删除一种材料而不是另一种材料?这是我的代码CODE LINK的链接

0 投票
1 回答
274 浏览

angular - 在Angular Reactive Forms中将一个控件的验证器绑定到另一个控件的值

我对 Angular 1.6 非常熟悉,刚刚开始学习 Angular 5 并查看响应式表单,如果这是一个新手问题,我深表歉意。我们的应用程序有很多复杂的验证规则,我可以看到在大多数情况下,使用响应式表单更容易实现它们。我有一些看起来更难的场景,特别是当验证器的输入是来自另一个控件的值时。这里有两个明显的例子:

  • “From”和“to”日期字段,其中“to”字段必须比“from”字段晚
  • “确认密码”字段必须与“密码”字段具有相同的值。

在 Angular 1 土地上,我会做这样的事情:

我会为 mustBeLaterThan 和 mustBeIdentical 编写自定义验证器指令,但我会在字段之间自动绑定,并且指令只需要编写一次。

在 Angular 2/4/5 反应式表单中,我似乎会创建验证器工厂函数,但我不清楚除了相关的 FormControl 之外,我将作为参数传递给它什么,这似乎很脏。我显然可以观察到一个领域的变化,并在另一个领域反复销毁和重新创建验证器,但这似乎效率低下且令人费解。在这样的场景中是否有更好的约定?

0 投票
1 回答
2293 浏览

angular - 唯一值角反应形式

我对 Angular 4 反应形式有疑问。

我的申请是一个培训项目。它在 SpringBoot、mySql 数据库和 Angular4 中有一个 Backend。

这个应用程序必须将医生添加到数据库,但还必须验证:许可证号必须是唯一的。我正在使用响应式表单(不是模板驱动的)。

我试图用功能解决我的问题:

但我不知道如何将它注入我的 formControl:

希望你们能帮助我。问候

0 投票
3 回答
10952 浏览

angular - 在Angular 4+的Reactive表单内的单选按钮组中有条件地禁用单选按钮

我在组件中创建了一个反应形式,并formControls在其上定义了一些。

现在我需要根据某些条件禁用单选按钮组中的一个单选按钮。

我在创作时怎么做formControl

PFB 代码片段:

在我的模板中:

现在如何有条件地禁用其中一个?使用[disable]属性时,我在浏览器控制台中收到一些警告。Angular 不鼓励这样做

0 投票
3 回答
1645 浏览

html - angular 4 下拉菜单设置选定状态

嗨,我正在开发一个 Angular 4 Web 应用程序。我正在尝试设置下拉菜单的初始选定状态。尽管没有设置下拉菜单的初始选定状态,但无论我做什么。请参阅下面的 html(我正在尝试将食谱的健康选项设置为“是”或“否”,具体取决于从数据库中返回的内容:-

打字稿模块代码:-

这是健康类代码:-

希望有人能让我摆脱痛苦(我已经坚持了几天了)。

0 投票
5 回答
14994 浏览

angular - Angular Reactive Forms:仅对某些特定的表单控件进行去抖动

我有一个简单的搜索组件,其中包含一个带有 2 个元素的反应式表单:

  • 文本输入(搜索任意匹配的文本)
  • 复选框(包括/排除已删除的结果)

到目前为止,我myFormGroup.valueChanges.subscribe(...)用来执行我的搜索方法。

现在的问题是,我想消除文本输入的抖动。同时不去抖动复选框,因此单击复选框时搜索方法会立即执行。

使用valueChanges.debounceTime(500)当然会消除整个表单的抖动。那不是我想要的。

这是一个精简的例子。真实的形式有更多的输入。有些应该去抖动,有些不应该。

有什么简单的方法可以完成这项工作吗?还是我必须分别订阅每个表单控件?

很高兴看到你是如何解决这个问题的。

提前致谢。


编辑:代码

0 投票
0 回答
410 浏览

angular - 如何使用 FormControl 和 ngComponentOutlet - Angular 5

我正在尝试通过 formControl 使用动态组件加载,但它不会影响我的主机 formGroup。

尝试了这些选项:

模板:

选项 1 - 不工作:

选项 2 - 不工作:

选项 3 - 工作:

组件功能:

getComponent:返回动态组件(支持使用reactiveForm)

getFormControlName:返回表单控件名称。返回字符串

getFormControl:返回formControl对象。表单控件

有人知道我应该怎么做吗?这个有可能?

查看该示例: https ://stackblitz.com/edit/angular-n8sdrm?embed=1&file=app/app.component.html

谢谢

0 投票
2 回答
3234 浏览

angular - 当复选框在反应表单中检查时启用

我需要帮助才能使行仅在选中复选框时才启用。默认行应该被禁用,但是当复选框只被选中时,该行将被启用。这是我的代码的链接

链接代码

0 投票
1 回答
2423 浏览

angular - 找不到路径'myFormArray -> [index] -> myProperty 的控件

我正在尝试使用 Angular ReactiveForms 生成动态表单。目前我收到错误Cannot find control with path 'myFormArray -> [index] -> myProperty。我已经检查了一些在互联网上找到的答案,但没有成功。这是我的代码:

HTML:

TS:

myData来自父组件作为组件的输入,它看起来像

更改中间索引的数据数组中的每个项目都会发生错误。

你能帮助我吗?谢谢

0 投票
0 回答
1406 浏览

angular - Angular 2+ 嵌套表单模式导致“检查后更改”错误

我正在遵循 Matt Brophy 的这种嵌套形式模式。本质上,子表单组件创建自己的FormGroup,并将其附加到FormArray从父表单组件传入的 a 中。

我遇到的一个马特可能忽略的问题是,如果孩子FormGroup碰巧无效,则会引发“检查后更改”错误。

重现问题的 ChildFormComponent 的代码如下所示:

您可以看到 childField1 和 childField2 之间的区别,其中 childField1 可以获取有效值,而 childField2 获取空字符串,这使得表单(及其父表单)无效。

难点在于ChildDatachildren FormArray直到OnInit.

我试图通过使用其他一些生命周期钩子来破解它,但我仍然遇到同样的错误,所以我不知道在哪里可以安全地附加 child FormGroup

我已经分叉了 repo并更新了软件包,因为我无法编译Matt 的版本。这是它应该如何工作的现场演示

这种模式很漂亮,我的项目已经投入其中,因为直到我开始添加验证器才发现这个问题。有没有办法在没有问题的情况下做到这一点?

[编辑]:我能够在测试用例中隔离问题,并从那里解决。因此,将此问题标记为该问题的副本。