问题标签 [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.
angular - 如何在formControl指令以角度获取输入之前更改输入值
需要在此输入中将波斯数字转换为英文数字<input type="text" formControlName="mobile" myCustomDirective />
。所以创建了一个指令,输入波斯数字事件以该值触发,然后我将其更改为英文数字,所有事件再次以英文数字触发。如果我阻止事件触发第二次更改,那是错误的,因为我需要使用英文数字触发事件。实际上,我需要在FormControl
指令捕获它之前获取输入的值并将其更改为英语。有什么解决办法吗?
angular - writeValue 不称为 Angular 自定义表单控件
我的应用程序中有几个自定义表单控件组件,因此我实现了一个基本组件,它实现了ControlValueAccessor
.
我所有的自定义表单控件都扩展了这个基类。到这里为止一切都很好。
在其中一个表单控件中,我需要替换原始writeValue
方法。问题是writeValue
没有调用新方法,而是调用writeValue
了基类中的方法。
以前有人遇到过这个问题吗?实际上,它似乎与类继承比角度形式控制更相关,但是,我认为我已经正确地实现了这一点。希望能得到你的任何帮助。
angular - Angular 创建可重用组件
我正在使用 ControlValueAccessor 在 Angular 10 中创建一个可重用的输入类型组件。但我的问题是我的变量 formControleName 仍然未定义
我使用了在这里找到的类:https ://stackblitz.com/edit/angular-eznzw5?file=src%2Fapp%2Fcontrol-value-accessor-connector.ts 。只需添加装饰器@Directiv
我的组件:
调用 myComponent :
我不明白这个问题
angular - 使用 Jasmine 断言传递给注册回调函数的最新参数是正确的
在 Angular 的ControlValueAccessor
接口中,定义了以下方法:
在测试实现的组件时ControlValueAccessor
,我需要断言传递给的最新参数值fn
是registerOnChange
预期值。请注意,我不是为fn
自己断言值,而是传递给的参数值fn
传递给registerOnChange
。
我该怎么做?
我正在尝试这些方面的东西,但它似乎没有奏效。在我预计它会失败的情况下,测试“通过”。
angular - 嵌套 ControlValueAccessor 的角度验证状态未在父级中正确传播,如何实现此验证?
我在 Angular 10 应用程序中遇到问题,在初始化时将 formGroup 的状态传播到其父级。
问题:在组件初始化时,子表单的验证状态未在多个级别的父级中正确传播。
更准确地说,我有 3 个嵌套组件。它们都是表单,并且两个孩子都实现了 ControlValueAccessor。它们通过“formControlName”属性进行通信。最深的表单初始化错误(必填字段)。父级没有收到有效性状态(它仍然有效)。
这是问题的重现:
https://stackblitz.com/edit/ngx-sub-form-hzo8wj?file=src/app/app.component.ts
我希望“基本表单组”在初始化时无效。“level 2”的有效性应该在“level 1”中传播,然后在“base formgroup”中传播“level 1”。
它可能来自正常的角周期。
在等待更好的解决方案时,我发现了一个 hack:
在第一个角度周期之后,我们从子级手动重新启动对父级的验证。这是级联在所有子组件中的。
我怎么能避免使用这个黑客?
angular - 事件更改值时未更新 ControlValueAccessor ngModel
我有一个组件,它使用 controlvalueaccessor 绑定从父组件传递的 ngModel
密码.component.ts:
吹线是我的password.component.html:
以下是我的父组件:
我的问题是,当我使用按钮更改输入时,密码组件中的触发模型正在更新,但父组件中的changeModel
值不受影响model.password
typescript - 允许 FormControl 对数字字段取负值
使用 CVA 方法。无法在输入字段中键入“-”。如果我们输入一个数字并在其前面加上“-”,那么它会起作用,并且会采用负数。但是,不能先输入“-”。
试图将输入类型更改为“文本”。但是,然后验证无法正常工作。
我需要 FormControl 将负数和正数十进制数取到 9999 并直接键入“-”。
angular - Angular 在模型更改时没有更新 UI 的问题
我有一个关于我的 Radiobox 组的 UI 更新的问题。
这种绑定工作正常。我的组件扩展了 ControlValueAccessor 并且当selectedOption
更新如下:
该值设置正确,selectedOption
但 UI 仅在我与组件交互时更新。即使打开我的日期选择器足以更新 UI,我也不必更改选择。
根据文档,UI 应在selectedOption
更改以匹配该值时更改。
angular - 如何将嵌套的 formGroupName 发送到连接到控制值访问器的输入组件?
我有连接到控制值访问器的自定义组件。在这个组件中,我正在动态构建我的表单标签,如输入、文本区域等......
它一切正常 - 但是当我尝试发送嵌套表单组时遇到问题。所以在表单组中形成组。
我已经建立了这个 formGroup
si 如果我想发送password_register
,我会在我的父组件中发送
但这只是我的主要 formGroup 中的一个 formControlregisterFG
现在我需要发送整个formGroup - email_register_group
嵌套在我的 mainformGroup - registerFG
中。
我使用自定义子组件
父组件
子组件 HTML
子组件 TS
连接到控制值访问器的cutom-component
how can i get my formGroup with two formControls inside -
email_register_group`
如此处建议:
但是当我做同样的事情时,i9 继续得到里面的控制 - 而不是 formGroup