5

Salut, je suis une forme dans la mise en œuvre angulaire 2 en utilisant Form BuilderForm Builder avec hasError() pour la validation renvoie une erreur d'erreur TypeError: Impossible de lire la propriété « hasError » undefined

dans component.ts j'ai mis mon formulaire en utilisant formGroup

Ci-dessous mon code

public myForm: FormGroup; 

constructor(private authenticateservice: AuthenticateService, 
       private _fb: FormBuilder 
      ) { 


} 

ngOnInit() { 

this.myForm = this._fb.group({ 
     address: [this.userDetails.address, [<any>Validators.required]], 
     address2: ['', [<any>Validators.required]], 
     city: ['', [<any>Validators.required]], 
     company_address: ['', [<any>Validators.required]], 
     company_address2: ['', [<any>Validators.required]], 
     company_city: ['', [<any>Validators.required]], 
     company_country: ['', [<any>Validators.required]], 
     company: ['', [<any>Validators.required , Validators.minLength(3)] ], 
     company_tax_number: ['', [<any>Validators.required]], 
     company_zip: ['', [<any>Validators.required, Validators.minLength(5) , Validators.maxLength(7)]], 
     country: ['', [<any>Validators.required]], 
     email: ['', [<any>Validators.required, Validators.email]], 
     first_name: [this.userDetails.first_name, [<any>Validators.required]], 
     id: ['', [<any>Validators.required]], 
     last_name: ['', [<any>Validators.required]], 
     phone: ['', [<any>Validators.required, Validators.minLength(10)]], 
     zip: ['', [<any>Validators.required , Validators.minLength(5) , Validators.maxLength(7)]], 
     user_type: ['2', [<any>Validators.required]], 
     terms: [0, [<any>Validators.required]], 
     hash_tag: [''], 

    }); 

} 

Il fonctionne très bien. Mais en venant à afficher des validations dans frontend

je comme ça

<div class="form-group row"> 
    <div class="col-lg-8"> 
     <label>Address 2</label> 
     <textarea class="form-control" placeholder="Address" rows="2" [readonly]="disabled" id="companyaddress2" formControlName="company_address2"></textarea> 
     <span class="help-block form-error text-danger small" *ngIf="myForm.controls['company_address2'].hasError('required')">Company Address 2 is Required.</span> 
    </div> 
    </div> 

il fonctionne, mais jeter l'erreur dans la console comme ci-dessous

erreur TypeError: Impossible de lire la propriété « hasError » undefined

Aidez-moi à trier cette information.

Merci.

Répondre

9

Vous devriez l'utiliser comme ceci:

<span class="help-block form-error text-danger small" 
    *ngIf="myForm.controls['company_address2'].errors?.required && 
    myForm.controls['company_address2'].touched">Company Address 2 is Required </span> 
+0

La valeur facultative est ce qui m'a aidé. Mon approche était un peu différente, j'utilise le contrôle?. HasError ("someError"). Je vous remercie! – kbpontius