5

mam problem stosując @md-input-containers i reaktywne formy modułu Kanciastymi/materiału.Angular2/Materiał 2: etykieta MD-Input-pojemnik nie jest zresetowanie, gdy pływak jest zmieniana programowo

Tworzę formularz logowania z trzema md-inputs, które są powiązane z wartościami przy użyciu FormBuilder 's FormGroup. Wszystko tam działa dobrze.

Moim problemem jest to, że na funkcji ngSubmit, mam reset formularz, jeśli poświadczenia są nieprawidłowe. Stosując metodę z FormGroup.reset() będzie przywrócić wartości domyślne, ale pływające etykiet w md-input-containers nie są przywracanie ich pierwotnym miejscu, jak powinny być na pustym polu. Zgaduję, że dyrektywy w sprawie Material Design szukają rozmycia, aby to zaktualizować, ale nie mogę tego stwierdzić, i nie wiem, jak to zmusić.

Oto ngSubmit funkcja:

submitForm(username: string, password: string, companyID: any):void { 

    this.userService.login(username, password, companyId) 
     .then(() => { 
     this.router.navigate(['main']); 
     }) 
     .catch(() => { 
     this.loginForm.reset(); 
     }) 
    } 

i na this.loginForm.reset() miano formularze zostaną zresetowane do wartości domyślnych (pusty strings), ale etykiety nadal będą unosić:

Labels still float. I reset Company ID for reference.

Każdy pomysł, jak to naprawić? Naprawdę nie chcę wywoływać ElementRef, chociaż już próbowałem to zrobić, aby wymusić rozmycie, które go nie rozwiązało.

+0

Jeśli jest to nadal problem dla każdego, polecam dokonywania plunker i złożenie problem na https://github.com/angular/material2 –

Odpowiedz

0

Użyj kontroli MD wejściowego, zamiast wprowadzania owinięty MD-Input-pojemnika. To zadziałało dla mnie.

Powiązane problemy