Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular ControlValueAccessor和touched_Angular_Typescript_Controlvalueaccessor - Fatal编程技术网

Angular ControlValueAccessor和touched

Angular ControlValueAccessor和touched,angular,typescript,controlvalueaccessor,Angular,Typescript,Controlvalueaccessor,我已经实现了一个日期选择器,它使用了日期、月份和年份的三个下拉列表。日期选择器是一个实现ControlValueAccessor的组件,运行良好。但是,我希望在触摸三个下拉列表中的任何一个时,控件暴露触摸 有很多关于触摸相关问题的问题,但不是这个对我来说很奇怪的具体问题,因为这是你默认想要做的事情 如何暴露组件的接触状态?另外,原始、肮脏等情况如何?仅适用于触摸:如果您的组件扩展了ControlValueAnteceso,或者您有类似的组件 //declare two functions onC

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

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


如何暴露组件的接触状态?另外,原始、肮脏等情况如何?

仅适用于触摸:如果您的组件扩展了ControlValueAnteceso,或者您有类似的组件

//declare two functions onChange and onTouched
onChange;
onTouched;
//register onChange and onTouched
registerOnChange( fn : any ) : void {
    this.onChange = fn;
}

registerOnTouched( fn : any ) : void {
    this.onTouched = fn;
}
您唯一需要的是,当您更改对函数的一个下拉调用时

this.onTouched()

有没有可能你用的是材料?没有,不是材料?。触摸式掩码必须很简单,它是更改下拉列表时对组件中声明的函数onTouched()的唯一调用。我调用
onTouched()
,但它不会对控件的触摸状态产生任何影响。我调用
onTouched()
但它对控件的触摸状态没有任何影响。我修改了customFormControl的一个旧stackblitz(它更复杂,但我有这个想法)来演示如何操作。单击customControl时,按触摸方式遮罩。在外部按钮中,标记为未触及。看中