Angular2 Benutzerdefinierte Komponente - mark als ursprünglichen und unberührten

Ich habe ein template-driven form in Eckigen 2.1 enthält viele standard-Steuerelemente (<input>, <select> etc) und ein benutzerdefiniertes Steuerelement, das sich selbst enthält mehrere input-Elemente.

Habe ich umgesetzt ControlValueAccessor auf das benutzerdefinierte Steuerelement und es sich ausbreitet, es verändert/berührt/gültige Werte korrekt an das übergeordnete Formular.

Allerdings .. auf das übergeordnete Formular habe ich einen button Speichern, auf die nach dem speichern möchte ich klar der dirty/berührt, Zustand (wie dies wirkt sich auf die css angewendet haben):

save(myForm: NgForm) {

    myForm.form.markAsPristine();
    myForm.form.markAsUntouched();

}

Diese funktioniert ok für alle Elemente in der obersten Ebene übergeordnetes Formular und das custom control selbst aber die <input> Felder innerhalb des custom controls sind noch markiert, wie berührt/verschmutzt (und dadurch Erhalt der pre-gespeichert styling).

Gibt es eine Möglichkeit, dass das benutzerdefinierte Steuerelement benachrichtigt werden kann wenn es schmutzig/berührt Zustand verändert, so dass es dann klar, dass es das Kind <input> Elemente übereinstimmen? Es scheint, dass, wenn die <input> Elemente werden innerhalb eines benutzerdefinierten Steuerelements, die Sie nicht bekommen, aktualisiert durch Aufrufe markAsPristine/Unberührt auf dem übergeordneten Formular.

Dank!

InformationsquelleAutor Garth Mason | 2016-12-22

Schreibe einen Kommentar