我必须遵循以下表格
form = new FormGroup({
title: new FormControl(null, {updateOn: 'blur'}),
})
对于标题输入,我创建了一个实现title-input
的自定义控件ControlValueAccessor
。如何访问此控件内的updateOn
选项?
答案 0 :(得分:0)
在谷歌搜索后,我找到了两种解决方案:
请注意,没有NG_VALUE_ACCESSOR
提供程序。
@Component({
selector: 'app-my-input',
templateUrl: './my-input.component.html',
styles: [],
})
export class MyInputComponent implements OnInit, ControlValueAccessor, AfterViewInit {
onChange: (_: any) => void;
onTouched: () => void;
isDisabled: boolean;
value: string;
constructor(private ngControl: NgControl) {
ngControl.valueAccessor = this;
}
ngOnInit() {
console.log('Update On: ', this.ngControl.control.updateOn);
}
}
@Component({
selector: 'app-my-input',
templateUrl: './my-input.component.html',
styles: [],
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => MyInputComponent),
multi: true,
},
],
})
export class MyInputComponent implements OnInit, ControlValueAccessor, AfterViewInit {
onChange: (_: any) => void;
onTouched: () => void;
isDisabled: boolean;
value: string;
ngControl: NgControl;
constructor(private inj: Injector) {
}
ngOnInit() {
this.ngControl = this.inj.get(NgControl);
}
ngAfterViewInit(): void {
console.log('Update on:', this.ngControl.control.updateOn);
}
}