问题标签 [angular-controlvalueaccessor]

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

angular - Angular 12 - TypeError:无法读取 null 的属性(读取“writeValue”)

Angular 12 - TypeError:无法读取 null 的属性(读取“writeValue”)

我正在创建一个通用文本输入组件,在为项目提供服务时一切正常,但在构建的项目中出现此错误:

TypeError:无法读取 null 的属性(读取“writeValue”)

HTML:

组件.ts

角度信息:

Angular CLI:12.2.6 节点:14.17.3 包管理器:npm 6.14.13 操作系统:win32 x64 Angular:12.2.6

0 投票
0 回答
28 浏览

angular - 自定义 ControlValueAccessor 控件上的 patchValue 时的自定义操作

我的自定义控件中有一个垫选择,带有延迟加载和搜索控件

这就是它在组件中的使用方式

现在,当我在这个控件上 patchValue 时,我想在这个类上调用自定义函数,因为在 onChange 上我收到完整的项目列表,而在 patchValue 上我想将它们设置为在我的自定义控件下选中

有没有办法做到这一点?提前致谢!

0 投票
1 回答
59 浏览

angular - 属性网格的角度反应形式

使用 Angular 12,我想验证和检测列表中的更改。

我有一个属性网格(一个键/值对表,列出具有可编辑值的属性,但每个值都可以是不同的类型,字符串/布尔值/int/等)。

我想为该属性网格添加验证和更改检测。

应该对每个项目进行验证,并且只需要对整个列表进行更改检测(不关心更改了哪一行/项目)。

我已经建立了这样的东西:

在使用 a 之前Form,我只是在使用一个InnerSetting列表,所以请记住,我刚刚开始用表单替换列表。

setting属性是一个InnerSetting对象。


问题

因为我需要根据设置类型(布尔值、字符串、数字等)显示不同的元素。我如何从formArray.controls?

另外,如何绑定到非标准输入控件,例如我div的 with a contenteditable


编辑

我注意到这formArray.controls是一个数组FormGroup,我可以访问this.formArray.controls[0].controls['name'].value.

现在的问题是根据类型将该控件设置为字段(选择或 div 或输入)。

0 投票
1 回答
164 浏览

angular - Angular V11:NullInjectorError:没有 ControlContainer 的提供者

我根据这篇文章进行了自定义输入:medium.com: dont-reinvent-the-wheel

这是我的代码,它处于严格模式 ▼</p>

没有编译错误但是浏览器会记录这个错误▼</p>

我在这里检查了类似的问题Angular 5: "No provider for ControlContainer"和这里No provider for ControlContainer并且根据他们的问题是没有在各自的模块中同时导入ReactiveFormsModuleFormsModule,但是我正在导入它们,但我仍然看到该错误.

在此处输入图像描述

UPDATE 1: 在组件<app-input>中的使用方式如下▼</p>

在此处输入图像描述

0 投票
0 回答
21 浏览

angular - Angular - 在控件值访问器中添加/删除类

我以这种方式有一个带有引导程序的反应形式:

使用控制值访问器的自定义组件变成:

如果控件在外部,我如何在自定义输入中应用 [ngClass] 部分?

这是我的 custom.component.ts:

和我的html

0 投票
1 回答
77 浏览

angular - Angular Reactive Forms vs ngModel,哪个性能更好?

我试图了解两者中哪一个具有更好的性能,我猜表单的类型对响应很重要,就我而言,我正在尝试创建一些 ControlValueAccessor 组件,每个组件都包含一个 mat-autocomplete 字段,目标是使用它在一个更大的响应式表单元素中,我想在 ControlValueAccessor 组件中使用响应式表单实现,但我不知道它是否会对性能产生负面影响,也许在响应式表单中使用 ngModel 会更好

0 投票
2 回答
31 浏览

angular - 单选按钮组件上的值访问器问题

因此,我正在尝试制作一个非常简单且干净的单选按钮组件,该组件可与值访问器一起使用,以在常见的角度形式场景中使用FormsModule,ReactiveFormsModule和 usingchangeDetectionStrategy.OnPush但我遇到了您可以看到的问题在这个 Stackblitz上,我得到了意想不到的结果,我理解这可能是我错过了一些东西,因为我已经很长时间没有定制收音机了。

当它第一次加载时,你会得到收音机的轮廓,但没有标签,直到你点击一些东西,writeValue并且在我得到一个错误时onModelChange未定义的。 No value accessor for form control with name:所以可以使用另一双眼睛,这样我就可以使用具有良好 'ol ngModel、formControlName、FormBuilder 的实例。

你会在 Stackblitz 中看到值访问器在那里并且正在实现ControlValueAccessor,所以我有点困惑,因为我最近用另一个组件做了同样的方法就好了。我可以在这里复制/粘贴部分闪电战,但我认为这个例子应该足够了,但如果不只是让我知道的话。