创建使用自定义表单元素时,ngModel必须提供一个元素NG_VALUE_ACCESSOR,这又需要组件实现ControlValueAccessor,该元素具有一种称为的方法registerOnTouched。所有angular.io文档都说的是:
Run Code Online (Sandbox Code Playgroud)registerOnTouched(fn: any) : void设置控件收到触摸事件时要调用的函数。
Angular文档听起来像是用于触摸输入,但是我认为这是ngForm查看用户是否曾经与输入进行交互的方式的一部分。文档似乎缺少一些有关“触摸事件”以及应该如何从组件外部注册和使用“ onTouch”处理程序的信息。
这到底是为了什么?如何使用?谁提供的fn?...使用我的组件((touched)="handler()")或仅使用Angular本身的开发人员?我看过一些示例,它们只是注册一个处理程序,然后从不调用或忽略它。如果是这样,为什么我需要完全实现它?
“触摸事件”的端到端示例可能会清除所有这些。
创建了一个问题,并且registerOnTouched 的文档已更改:
注册一个回调函数,当控件接收到模糊事件时应调用该回调函数。
这在初始化时由表单 API 调用,因此它可以在模糊时更新表单模型。
...
注册触摸处理程序会导致在自定义输入上ngForm正确设置ng-touched类和ng-untouched类。这是一个关于plunker的例子。
我不确定触摸事件由什么组成,也不知道在触摸自定义输入时直接检查或收听的方法。
| 归档时间: |
|
| 查看次数: |
4055 次 |
| 最近记录: |