В ControlValueAccessor writeValue () не вызывается при вызове selectedOnChange () - PullRequest
0 голосов
/ 30 апреля 2018
@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;
  }
}
  1. Я звоню setValue(value+"0") при нажатии кнопки, которая вызывает onChange(), но writeValue не вызывается.
  2. Мой formControl имеет значение по умолчанию name, это значение по умолчанию вызывает writeValue в первый раз.
  3. Когда я проверяю значение в formControl, набирая formGroup.controls.name.value, оно заменяется новым установленным значением.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...