代码之家  ›  专栏  ›  技术社区  ›  Jonathan Smith

在使用带有ControlValueAccessor的自定义组件时从未调用onTouched

  •  0
  • Jonathan Smith  · 技术社区  · 5 年前

    我正在尝试让嵌套/子窗体与使用ControlValueAccessor接口的自定义组件一起工作。

    我这里有一个stackblitz演示 https://stackblitz.com/edit/angular-jg2p8c

    touched infoForm 反对。

    0 回复  |  直到 5 年前
        1
  •  0
  •   kvetis    5 年前

    提供 NG_VALUE_ACCESSOR ControlValueAccessor interface ,意思是你拿着 registerOnTouched(fn)

    onTouched = () => void;
    
    constructor() {
      this.form.statusChanges.pipe(
        first(() => this.form.touched),
      ).subscribe(
        () => this.onTouched()
      )
    }
    
    registerOnTouched(fn) {
      this.onTouched = fn;
    }