@Component({
selector: 'image-handler',
templateUrl: 'image-handler.html',
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => ImageHandlerComponent),
multi: true
}
]
})
export class ImageHandlerComponent implements ControlValueAccessor{
@Input() customFormEntity: ImageHandlerEntity;
value: string;
setValue(value: string) {
console.log(`setValue() ${value}`)
this.onChange(value);
}
onChange = (_value: string) => {
console.log('onChange() not overridden')
};
onTouched = () => {
console.log('onTouched() not overridden')
};
writeValue(value: string): void {
console.log('writeValue is called ', value)
this.value = value;
}
registerOnChange(fn: (value: string) => void): void {
this.onChange = fn;
}
registerOnTouched(fn: () => void): void {
this.onTouched = fn;
}
}
- Я звоню
setValue(value+"0")
при нажатии кнопки, которая вызывает onChange()
, но writeValue
не вызывается.
- Мой
formControl
имеет значение по умолчанию name
, это значение по умолчанию вызывает writeValue
в первый раз.
- Когда я проверяю значение в
formControl
, набирая formGroup.controls.name.value
, оно заменяется новым установленным значением.