2016-06-15 7 views

Antwort

23

Sie sollten die markAsDirty Methode verwenden, wie folgt aus:

control.markAsDirty(); 

Dies wird auch Markieren Sie alle direkten Vorfahren als schmutzig, um das Modell zu erhalten.

Docs link

+0

Beachten Sie, dass dies auch auf einem 'FormGroup' arbeiten, wodurch die Notwendigkeit einer Whack von Kontrollen unabhängig nach einzustellen, sagen , ein 'patchValue ({})'. – msanford

+0

Während jeder Post, den ich auf SO finde, sagt, marksAsDirty zu nennen, wird das Steuerelement erfolgreich als "dreckig" festgelegt, aber es kommt nicht zu NgForm oder FormGroup. Wenn ich diese Objekte in Chrome inspiziere, gibt ihr "schmutziger" Getter immer noch false zurück. Ich habe keine Idee warum. – nogridbag

0

Für Vorlage angetrieben Formulare können wir unter generischen Code verwenden

public onSubmitForm(cardFormObject: NgForm) { 
     if (!cardFormObject.valid) 
      this.markAsDerty(cardFormObject);  

    } 

    private markAsDerty(cardFormObject: NgForm) { 
     for (var eachControl in cardFormObject.controls) { 
      (<FormControl>cardFormObject.controls[eachControl]).markAsDirty(); 
     } 
    } 
Verwandte Themen