Sar*_*wan 4 angular angular-forms
看一下这个例子:
https://stackblitz.com/edit/angular-nxjeu3
这是行不通的。
但是,如果我将的providers从@NgModule移到HelloComponent,它确实可以工作。为什么?提供的@NgModule级别或@Component级别不应该相同吗?
因为将NG_VALUE_ACCESSOR内容绑定到组件的:host并在那里链接到方法(ControlValueAccessor方法)。您的模块没有任何这些表单方法(例如writeValue,registerOnTouched等)。您的表单元素可以。因此,在组件级别提供绑定此绑定到该特定元素。此外,提供如此深入的信息意味着每个表单控件都有其自己的控件值访问器,而不是共享的。
Angular Form控件及其API与DOM表单控件不同。angular所做的是绑定到dom元素的输入/输出,并为您提供结果。现在,使用您的自定义控件,您必须在此处提供相同的绑定。通过实现ControlValueAccessor和提供NG_VALUE_ACCESSOR,您将告诉Angular的Forms API如何从您的自定义表单控件中读取和写入值。
看一下来源。
| 归档时间: |
|
| 查看次数: |
1873 次 |
| 最近记录: |