问题标签 [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 投票
0 回答
952 浏览

angular - Reactive-Forms:子组件中父级的 FormControl 验证器

每个人,

我用 Angular 6 构建了我的 Reactive-Form。

在这里,我使用验证器在 ParentComponent 中构建了表单:

对于输入字段,我想制作一个 ChildComponent 来为用户提供更多信息,并且我没有多次使用相同的代码。

输入值成功传输到父组件。但是如何从子级的父级检查 FormControl 的验证?

0 投票
2 回答
3422 浏览

angular - Angular ControlValueAccessor 必需属性

我有一个实现 ControlValueAccessor 的文本框控件。在表单中,我在表单字段名称上放置了一个必需的验证器:

在模板中,我使用这样的控件:

Angular 必需的验证有效,但内部文本框没有必需的属性。如果需要,我想设置此文本框的样式,我该如何完成?

0 投票
1 回答
792 浏览

javascript - 从不同的组件访问 ControlValueAccessor

我有我实现的组件,但ControlValueAccessor在理解正确使用它的方法时遇到问题:

和html:

我尝试在另一个组件中使用它:

hmtl:

打字稿:

我应该把它放在milestone对象中,但它是空的。我错过了什么?

0 投票
1 回答
836 浏览

angular - TypeError:没有'new'就不能调用类构造函数DefaultValueAccessor

有一些 Angular 第三方库提供内部扩展 DefaultValueAccessor类的指令。

当它们被导入到 TypeScript 编译目标设置为的项目中时es6,它们会停止工作并抛出错误:

TypeError:没有'new'就不能调用类构造函数DefaultValueAccessor

受此问题影响的不同库的示例:

一种解决方法是将库的源代码复制粘贴到我自己的项目中(而不是将库作为 npm 依赖项导入)。然而,由于显而易见的原因,这样做既不好也不方便。

如何在图书馆正确解决这个问题?

0 投票
1 回答
2029 浏览

angular - ControlValueAccessor 并触及

我已经使用日期、月份和年份的三个下拉菜单实现了一个日期选择器。日期选择器是一个实现 ControlValueAccessor 并且运行良好的组件。但是,我希望控件在触摸三个下拉菜单中的任何一个时显示触摸。

关于touch的相关问题有很多问题,但不是这个对我来说似乎很奇怪的具体问题,因为这是你默认想要做的事情!

如何暴露组件的触摸状态?此外,原始的,肮脏的等怎么样?

0 投票
1 回答
1624 浏览

angular - 如何创建自定义响应式表单元素?

我正在使用 Angular 中的反应式表单,我正在尝试创建一个自定义表单元素,以便我可以在表单中使用按钮。我正在尝试遵循Alligator.io的教程,但不清楚如何将其集成到我的组件中。目前我收到以下错误。

以下是我的代码,任何帮助将不胜感激。

// HTML

// 零件

0 投票
1 回答
1288 浏览

angular - 角度材料反应形式模式 - 如何使用 ControlValueAccessor 为该模式制作组件

使用角材料mat-form-field和反应形式。在一个项目中,我有一个看起来像这样的重复模式

这是一个高级别的 - 接受我可以从服务器接收验证错误 - 我如何在组件中重复这个 http 模板模式?我有一种预感,我应该使用 ControlValueAccessor - 但不知道该怎么做。

我想象的实现可能看起来像这样

所以基本上我想像常规材料输入(或多或少)一样使用这个自定义组件,除了它默认带有服务器验证错误。谁能在这里给我一些指导-谢谢。:)

0 投票
0 回答
43 浏览

angular - 从 writeValue 实现的请求结果列表中设置值

我有一个 Angular 7 自定义组件,它在ngOnInit方法中有这样的后端请求

该组件实现ControlValueAccessor接口。在writeValue我有:

writeValue自定义组件的方法必须等待list结果初始化ngOnInit,因为父组件提供的值必须是结果列表之一。

[undefined, null, "a value"]在结果列表到达之前,父组件正在使用值初始化此组件。

"a value"期望的行为是将来自 parent ( )的最后传递的值保留为值

问题是:

  • 如何避免三订阅this.elementsRequest$
  • 如果必须订阅,如何确保自定义组件保持提供的最后一个值?
0 投票
1 回答
41 浏览

javascript - 为什么在 Angular ControlValueAccessor 实现中使用函数表达式?

我注意到大多数通过函数表达式ControlValueAccessor定义它们onChange和函数的实现,如下所示:onTouch

与常规函数声明相比,是否有任何特定理由这样做?

0 投票
1 回答
6267 浏览

angular - 角度错误:没有 NgControl 的提供者

我正在创建一个实现 ControlValueAccessor 的组件以在反应式表单中使用,它只是一个输入元素的包装器,上面有一些管道。

我注入了 NgControl 以检索有效/无效状态并将它们传播到内部输入元素。

当输入值在另一个输入中找到时,它是无效的。

这里是 Stackblitz

在 Stackblitz 上工作正常,但是当我进行ng build --prod时,它会引发错误:

错误:没有 NgControl 的提供者(“[ERROR ->])

你看有什么问题吗?

谢谢!