Angular Forms Flashcards

1
Q

Jakiego rodzaju mamy podejścia do pracy z formularzami w Angularze?

A

Template i Reactivex

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Opisz krótki formularze Reactivex?

A

Bardziej elastyczne, testowalne, skalowalne + do użytku z wzorcami reaktywnymi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Jak wygląda działanie formularzy template-driven?

A

To znacznie prostsze formularze. W sytuacji kiedy nie są nam potrzebne zaawansowane możliwości formularzy Reactive. Nie skalują się dobrze.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Jakie są kluczowe elementy formualarzy reaktywnych?

A

Są explicite (setup), dane strukturyzowane, synchroniczne, walidacja przez funkcje, immutable, dostęp poprzez low-level API

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Jakie są zalety template driven API?

A

Są less explicit, nieustrukturalizowane, asynchroniczne, walidacja przez dyrketywy, mutable, aobstrakcja nad api

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Do czego służy FormControl?

A

Pozwala na śledzenie wartości i określenie statusu walidacji pojedynczego elemetu .

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Do czego służy element FormGroup?

A

Śledzi wartości i status walidacji dla kolekcji elementów ?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Do czego służy FormArray?

A

Śledzi wartości i status walidacji dla tablicy elementów ?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Do czego służy element ControlValueAccessor?

A

To most pomiędzy Angularowymi instancjami FormControl i natywnymi elementami DOM

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Jak stworzyć prosty formularz wykorzystując Reactivex form?

A

import { Component } from ‘@angular/core’;
import { FormControl } from ‘@angular/forms’;

@Component({
  selector: 'app-reactive-favorite-color',
  template: `
    Favorite Color: 
  `
})
export class FavoriteColorComponent {
  favoriteColorControl = new FormControl('');
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Co jest źródłem prawdy w formularzu Reaktywnym?

A

Jest to FormModel. - czyli instancja FormModel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Czy kontolka FormControl wykorzystuje ControlValueAccessor?

A

Tak, dyrektywa FormControl wykorzystuje accessor do synchronizacji danych

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jak wygląda setup formularza wykorzystującego template-driven form?

A

import { Component } from ‘@angular/core’;

@Component({
  selector: 'app-template-favorite-color',
  template: `
    Favorite Color: 
  `
})
export class FavoriteColorComponent {
  favoriteColor = '';
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Co jest źródłem prawdy w template-driven form?

A

Jest to szablon - template. W tym wypadku to dyrektywa ngModel tworzy instancje FormControl. Jest less-explicit, ale mamy mniejszą kontrolkę nad formularzem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

W jaki sposób input jest połączony z modelem?

A

Aktualizacje z widoku do modelu i odwrotne są synchronizcne i niezależle od UI. Wykorzystywana jest metoda favColorControl.setValue(“blue”);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Jaki jest flow wpisania tekstu w formularz w Reaktywnym formularzu?

A

Użytkownik coś wpisuje. Form input emituje zdarzenie z najnowaszą wartością. ControlValueAccessor nasłuchuje na to zdarzenie na element form input i od razu przekierowuje wartośc do instnacji FormControl.

Następnie FormControl emituje nowe zdarzenie z nową wartością poprzez valueChanges - observable.

Innu subskrybencji na zdarzenie valueChanges również dostają nową wartość.

17
Q

W jaki sposób zaktualizować programistycznie wartość w formularzu?

A

Wykorzystuje instancje FormControl. favColorControl.setValue(‘nowaWartosc’); FormControl emituje nowe zdarzenie i wartość poprzez valueChanges - observable. Wszyscy subskrybencji otrzymuję powiadomienie i nową wartość. ControlValueAccessor na eleent aktualizuje kontrolkę z nową wartością.

18
Q

Jak wygląda przepływ danych w przypadku formularzy template-driven?

A
  1. Uzytkowni kwybiera kolor
  2. input emituje zdarzenie z nową wartością
  3. control value accessor reaguje na zdarzenie i odpala setValue() na instancji FormControl
  4. FormControl emituje zdarzenie poprzez valueChanges (observable)
  5. Wszyscy subkrybencji otrzymują nową wartość
  6. ControlValueAccessor uruchamia NgModel.viewTomodelUpdate() co emituje zdarzenie ngModelChange
  7. Ponieważ mamy wiązanie dwu-stronne to wartość favoriteColor jest aktualizowana.