无法读取未定义的属性“已启用”

时间:2019-10-01 00:56:31

标签: javascript angular

在代码中。我必须以反应形式设置控件的值。

ngDoCheck() {
   setControlValues();
}

ngChanges(changes: SimpleChanges): void {
   setControlValues();
}

private setControlValues() {
   try {
   theForm.Controls['class'].setValue(myValue); //error happens here
   // ...many controls
   }
   catch(e) {
      console.log(e);
   }
}

但是我得到了例外。

  

无法读取FormGroup._forEachChild上Array.forEach()的eval(forms.js.4793)的eval(forms.js:4873)的eval(forms.js:4852)的未定义属性'enabled'。 ....在FormControl.AbstractControl.updateValueAndValidity(forms.js:3393)

该表单定义为

theForm: FormGroup;
constructor(private fb: FormBuilder) {
    this.useForm = this.fb.group({
    class: [null]
 });
}

我的html是:

<texearea kendoYextArea
     formControlName="class" required></textarea>

已更新:

我发现库中的forms.js代码具有以下内容。

 AbstractControl.prototype.updateValueAndValidty =
 function(opts) {
    if(opts == void 0) { opts = {}; }
    this._setInitialStatus();
    if(this.enabled ) {
        this._cancelExistingSubscription();

1 个答案:

答案 0 :(得分:0)

仍然没有任何线索。但是如果我使用

 theForm.Controls['class'].patchValue(myValue)

然后错误消失了。