问题标签 [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.
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
angular - 自定义 ControlValueAccessor 控件上的 patchValue 时的自定义操作
我的自定义控件中有一个垫选择,带有延迟加载和搜索控件
这就是它在组件中的使用方式
现在,当我在这个控件上 patchValue 时,我想在这个类上调用自定义函数,因为在 onChange 上我收到完整的项目列表,而在 patchValue 上我想将它们设置为在我的自定义控件下选中
有没有办法做到这一点?提前致谢!
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 或输入)。
angular - Angular V11:NullInjectorError:没有 ControlContainer 的提供者
我根据这篇文章进行了自定义输入:medium.com: dont-reinvent-the-wheel。
这是我的代码,它处于严格模式 ▼</p>
没有编译错误但是浏览器会记录这个错误▼</p>
我在这里检查了类似的问题Angular 5: "No provider for ControlContainer"和这里No provider for ControlContainer并且根据他们的问题是没有在各自的模块中同时导入ReactiveFormsModule和FormsModule,但是我正在导入它们,但我仍然看到该错误.
UPDATE 1:
在组件<app-input>
中的使用方式如下▼</p>
angular - Angular - 在控件值访问器中添加/删除类
我以这种方式有一个带有引导程序的反应形式:
使用控制值访问器的自定义组件变成:
如果控件在外部,我如何在自定义输入中应用 [ngClass] 部分?
这是我的 custom.component.ts:
和我的html
angular - Angular Reactive Forms vs ngModel,哪个性能更好?
我试图了解两者中哪一个具有更好的性能,我猜表单的类型对响应很重要,就我而言,我正在尝试创建一些 ControlValueAccessor 组件,每个组件都包含一个 mat-autocomplete 字段,目标是使用它在一个更大的响应式表单元素中,我想在 ControlValueAccessor 组件中使用响应式表单实现,但我不知道它是否会对性能产生负面影响,也许在响应式表单中使用 ngModel 会更好
angular - 单选按钮组件上的值访问器问题
因此,我正在尝试制作一个非常简单且干净的单选按钮组件,该组件可与值访问器一起使用,以在常见的角度形式场景中使用FormsModule
,ReactiveFormsModule
和 usingchangeDetectionStrategy.OnPush
但我遇到了您可以看到的问题在这个 Stackblitz上,我得到了意想不到的结果,我理解这可能是我错过了一些东西,因为我已经很长时间没有定制收音机了。
当它第一次加载时,你会得到收音机的轮廓,但没有标签,直到你点击一些东西,writeValue
并且在我得到一个错误时onModelChange
是未定义的。 No value accessor for form control with name:
所以可以使用另一双眼睛,这样我就可以使用具有良好 'ol ngModel、formControlName、FormBuilder 的实例。
你会在 Stackblitz 中看到值访问器在那里并且正在实现ControlValueAccessor
,所以我有点困惑,因为我最近用另一个组件做了同样的方法就好了。我可以在这里复制/粘贴部分闪电战,但我认为这个例子应该足够了,但如果不只是让我知道的话。