代码之家  ›  专栏  ›  技术社区  ›  Willem van der Veen

角度表达式在自定义表单控件上的时间范围内更改

  •  0
  • Willem van der Veen  · 技术社区  · 6 年前

    我的Angular应用程序工作正常,但在我尝试对指令执行ngafterviewinit后,我得到以下错误:

    enter image description here

    下面是我试图实现的代码:

      ngAfterViewInit() {
        this.control = this.injector.get(NgControl).control;
        this.setValidator();
      }
    
    
      private setValidator() {
        this.control.setValidators(Validators.required);
        this.control.updateValueAndValidity();
      }
    

    代码基于 this 博客帖子(用角度实现recaptcha)。

    我已经读过了 SO answer 它描述了错误,但我无法在特定情况下修复它。

    问题:

    为什么我会得到这个错误,我能做什么来修复这个错误?

    如果您需要任何额外的代码或信息,请评论。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Nandita Sharma    6 年前

    保持功能 this.setValidator() 在设置超时

     ngAfterViewInit() {
        this.control = this.injector.get(NgControl).control;
        setTimeout (()=> {
            this.setValidator();
        },0);
      }
    

    有关此错误的详细信息,请阅读 this