2016-05-13 11 views
2

Ich habe eine Funktion, die Server (remote) Fehler an die Felder in meinem Formular anfügt. Wie kann ich globale Fehler zum Formular hinzufügen (d. H. Nicht nur ein Feld)? I markiert es mit ERLEDIGENWie programmgesteuert globalen Formularfehler in Angular 2 festlegen?

import {NgForm} from 'angular2/common'; 

export function appendRemoteErrorsToForm(form: NgForm, modelState: Map<string, Array<string>>) { 
    if (!modelState) { 
    return; 
    } 
    let _globalKey = 'global'; 
    for (let key in modelState) { 
    let errors = modelState[key]; 
    if (key !== 'global') { 
     form.controls[key].setErrors({ 
     remote: errors 
     }); 
    } else { 
     //todo 
    } 
    } 
} 

Antwort

4

ich den Fehler auf der mit der NgForm Richtlinie verbundenen ControlGroup gesetzt würde:

for (let key in modelState) { 
    let errors = modelState[key]; 
    if (key !== 'global') { 
    form.controls[key].setErrors({ 
     remote: errors 
    }); 
    } else { 
    form.control.setErrors({ // <----- 
     remote: errors 
    }); 
    } 
} 

Auf diese Weise kann Sie es auf diese Weise verweisen:

<form #companyForm="ngForm"> 
    <div *ngIf="companyForm.control.errors"> 
    Display errors 
    </div> 
</form> 
Verwandte Themen