属性“ _touched”是私有的,只能在类“ AbstractControl”中访问。

时间:2019-07-19 09:52:12

标签: angular angular-reactive-forms

生产版本错误

嗨,我在Angular Project中使用ReactiveForms,当我尝试ng build --prod时,出现以下错误

ng-details/billing-details.component.html (40,6): Property '_touched' is private
 and only accessible within class 'AbstractControl'.

下面是我的代码,我不知道哪里写错了?

  paymentForm = new FormGroup({
    companyName: new FormControl('', Validators.minLength(3)),
    companyAddress: new FormControl('', Validators.minLength(3)),
    gstNumber: new FormControl('', Validators.minLength(3)),
    country: new FormControl('', Validators.minLength(3)),
    cardNumber: new FormControl('', Validators.pattern('[0-9]{12}')),
    cardName: new FormControl('')    
  });

HTML

<div class="common-error" *ngIf="paymentForm.controls.country._touched && !paymentForm.controls.country.valid"> Please enter Company Name. (Min 3 char)</div>

2 个答案:

答案 0 :(得分:1)

为什么您引用_touched属性而不是touched属性?

_touched是Angular的内部实现细节。请仅使用公共变量。

尝试:

paymentForm.controls.country.touched

答案 1 :(得分:1)

您可以在下面的示例中提到的formControl中的User Touched属性。 FormControlName属性在那里定义输入控件的名称。

<input id="name" class="form-control"
      formControlName="name" required >

<div *ngIf="name.invalid && (name.dirty || name.touched)"
    class="alert alert-danger">
</div>