问题标签 [angular-abstract-control]

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 回答
4685 浏览

javascript - 从 Angular 反应式 FormArray 获取同级 AbstractControl - 自定义验证

我在 Angular 中有一个使用反应式表单的联系表单。表单包含firstNamelastName的数组address。每个地址表单组都包含一个复选框,如果选中该复选框,则需要验证 State 文本框,以及最小和最大字符长度。

我编写了一个自定义验证器,即“ stateValidator”,我试图获取兄弟元素“ isMandatory”,但我无法获得控制权。

我尝试了以下方法

  • control.root.get('isMandatory');- 它的回归null
  • control.parent.get('isMandatory');- 它的抛出异常

我在 stackoverflow 中找到了一些链接,但没有可用的答案,并且一些答案没有给出解决方案,例如上面的代码:control.root.get('isMandatory');我从其中一个视频教程中得到了这个,但没有任何效果。

StackBlitz 中提供了完整的工作源代码:https ://stackblitz.com/edit/angular-custom-validators-in-dynamic-formarray

app.component.ts

app.component.html

请帮助我如何在自定义验证器方法中获取兄弟抽象控件。

我尝试了以下几个答案中指定的代码

它抛出一个错误ERROR Error: too much recursion。请帮助我如何解决这个问题。

0 投票
2 回答
43 浏览

angular - 尝试在 Angular 中添加子 FormGroup 时出现错误 TS2339

我正在使用 Angular8 并尝试使用 addControl 将子 FormGroup 添加到表单中:

这给了我编译器错误: error TS2339: Property 'addControl' does not exist on type 'AbstractControl'.

真的坚持这一点,所以所有的帮助都非常感谢!

0 投票
1 回答
1384 浏览

angular - Angular Reactive Form:从控件中删除特定的验证器

我正在使用 Angular 反应形式。在我的场景中,验证器被动态添加到我的控件中。

这样做如下:

这工作得很好。

问题

我需要一种方法来删除特定验证器,同时保留其他验证器。

myControl.validators只返回一个函数,而不是一组验证器,这使得无法选择一个来删除而留下其他的。

我知道有一些解决方法,比如跟踪其他地方的现有验证器等。但是我的问题是:这可以直接在AbstractControl?

Github 上的以下问题讨论了该问题: https ://github.com/angular/angular/issues/13461

那里提供的解决方案似乎对我不起作用,因为我不仅要处理所需的验证器,还要处理许多自定义验证器。

提前感谢您对此的任何提示或解决方案!

干杯,迈克

0 投票
2 回答
1145 浏览

javascript - 具有动态添加控件的 Angular FormArray

不久前我开始在 Angular 9 上进行编码,并且正在创建一个反应式表单,它具有通过 FormArray Abstract 动态添加的表单控件,但是每当我尝试循环遍历 formArray 控件的 value 属性时,我就会感到难以置信错误我已经尝试了将近 12 个小时。当我在值节点下只有一个数组条目时,不会出现此错误。有人可以指出做错了什么吗?

这是错误:

在此处输入图像描述

这是我的表单生成器:

这是我的组件的函数调用:

这是itemsgroup() function

我的 html 模板的代码片段:

这是我的表格(截断): 在此处输入图像描述

0 投票
1 回答
330 浏览

javascript - 如何通过 Angular 9 中的 FormGroup (AbstractControl) 在 Reactive Form 中重置 ng-select?

我有一个带有一堆 ng-select 元素的 FormGroup。我还有以下代码可以重置反应表单中的所有值,但 ng-select 元素除外。

我也试过currentControl.patchValue('')and with null,但它不起作用。当我在其中加载错误的“ item”时,ng-select它有一个选定的值“ undefined”,我想在它是时清除这个默认选定的值undefined。这就是我使用== null.

即使你有一个 hacky JavaScript (Vanilla) 解决方案,也要分享它。

0 投票
1 回答
1440 浏览

angular - 错误:“AbstractControl”类型缺少“FormGroup”类型的以下属性:控件、registerControl、addControl、removeControl、

我使用 android 制作了一个天气 API Web 应用程序,

链接:- https://stackblitz.com/edit/maximlweatherapp

APP 网址:- https://maximlweatherapp.stackblitz.io

我在我的 Visual Studio 代码中使用了相同的代码,它工作正常,没有出现任何错误,但在 StackBlitz 中,它给出了错误两者的唯一区别是在我的 Visual Studio 中,安装了 Angular 版本 8,但我在这里使用 Angular 版本 9,请任何人都可以看到代码有什么问题并建议我进行一些更改,

我的 Visual Studio 代码输出的工作结果 我的 Visual Studio 代码输出的工作结果。

0 投票
2 回答
3190 浏览

angular - 角度中的 FormControl 和 AbstractControl 问题

我正在学习在线课程,但我有很多问题。

我取决于我输入我得到的代码

“abstractcontrol”类型缺少“formcontrol”类型的以下属性:registerOnChange、registerOnDisable、_applyFormState

或者

类型 Abstractcontrol 不可分配给类型 formcontrol

在我的组件的 TS 中,我有

在我拥有的组件的 HTML 中

我不确定示例是哪个版本,但我使用的是 Angular 11.05

提前致谢。

问候

尼古拉斯

0 投票
1 回答
98 浏览

angular - 从 AbstractControl 访问 MatCheckbox

我有一个MatCheckboxFormGroup希望能够读取的indeterminate值。但FormGroup唯一给我AbstractControl的 s 似乎不能转换为,也不包含对我能够找到的底层控制的任何引用。

如何读取indeterminate底层证券的价值MatCheckbox

编辑:有两个 .ts 文件与我的表单交互:第一个是表单的控制器(我认为这是正确的术语?),它可以访问表单上的变量,并且具有可以从html。第二个服务似乎充当表单和其他服务/组件之间的中间人。这一项中的功能也可以从表单中获得,但它似乎无法触及表单本身;正是在这项服务中,我AbstractControl得到了 . 该服务是我需要能够确定是否indeterminateMatCheckbox.AbstractControl

0 投票
1 回答
564 浏览

angular - 如何以角度访问 *ngFor 中的 FormGroup 的 formArray?

我正在使用使用 FormArray 的嵌套 FormControl。我的表格是这样的:

并在 HTML 模板中

**但上述代码返回Build Error的控件在 abstractControl 上不存在。**

所以我转换form.get('addresses')FormControl使用这个getter Melthod。

在那次转换之后。新的构建错误引发了controlGroup does not contain this methods : addControl, removeCotnrol and ...

因为addressArray.**controls**返回数组而abstractControl不是指令需要。FormControl[formGroup]FormControl

我怎样才能*ngFor像这样定义类型:

这可能吗?

请帮我。

0 投票
1 回答
106 浏览

angular - 选择器确定 FormArray 的控件属性是 [FormControl] 还是 [FormGroup]?

我继承了我正在调试的角度代码文件。当我记录需要评估的 FormArray 时,它会作为以下两种类型的 FormArray 控件之一注销:[FormControl] 或 [FormGroup]。

这是我正在记录的函数的一部分:

在一个用例中,当加载包含表单控件的 mat-table 时,我在日志中得到以下信息:

在此处输入图像描述

在另一个用例中,例如具有多个选项的复选框控件,我得到以下信息:

在此处输入图像描述

我需要弄清楚如何过滤最后一行代码,即 IF 语句的 [HELP] 条件,以便它只匹配 FormArray 的控件属性包含 [FormGroup] 而不是 [FormControl] 的条件