Loginpagina.

Op de loginpagina komt een formulier waarmee een gebruiker zich kan registreren met zijn email en wachtwoord. Angular kent twee soorten formulieren. Template-driven forms en Reactive forms. Welk type formulier je gebruikt, maakt in principe niet veel uit. Wij gaan voor de template-driven form. Deze leunt het meest aan bij de formulieren die je uit HTML5 kent.

Voor je het formulier kan gebruiken, moet je eerst de FormModule in de LoginModule importeren.

Template aanpassen.

Plaats op de loginpagina een formulier met twee tekstvelden (email en wachtwoord). Het formulier heeft geen submitbutton, maar wel drie buttons die elk een methode in de component aanspreken. Deze methodes voeren vervolgens de bijbehorende acties in de authService uit.
Rechts van het formulier komen nog vier social media buttons. Ook deze sturen we via de component door naar de service. Merk op dat we voorlopig enkel Google in de Firebase console hebben geactiveerd! De drie andere buttons zullen dus altijd een fout genereren. We gaan ze toch al voorzien zodat je achteraf zelf kan beslissen of je de diensten in de Firebase activeert of dat je de buttons gewoon verwijdert.

Buiten de opbouw van de form-tag, zit er niets nieuws in deze pagina. Het formulier werkt voorlopig nog niet, omdat de bijbehorende component nog niet is ingevuld.

Component aanpassen.

De logica binnen deze component vraagt weinig uitleg. De meeste dingen heb je ondertussen al meermaals gebruikt.

Merk op dat je de authService deze keer private injecteert. Waarom is dit belangrijk?

constructor(private abcService: AbcService) { ... }

constructor(public abcService: AbcService) { ... }

Kijk nog eens goed naar de template. Op de laatste lijn ga je rechtstreeks de methode getAuthState$() uit de authService op de pagina tonen. Had je de service nu private geïnjecteerd, dan zal je merken dit met ng serve geen probleem geeft, maar zodra je naar productie overgaat (ng build --prod) zal je compilatiefouten krijgen!