Wyrażenia JS: zasady gry
Formularz działa, ale jest prosty. Od tej lekcji dodajemy mu logikę za pomocą wyrażeń w JavaScripcie, pisanych bezpośrednio we właściwościach pól. Najpierw poznajesz zasady.
Wartość stała albo wyrażenie
Dział zatytułowany „Wartość stała albo wyrażenie”- Prawie każda właściwość pola ma dwie wersje:
- zwykłą — wpisujesz albo zaznaczasz wartość (np. required, min, max),
- wyrażenie (expression) — tę samą wartość liczy JavaScript, na żywo.
- Efekt jest ten sam, tylko w wyrażeniu wartość może zależeć od innych danych.
return — najważniejsza zasada
Dział zatytułowany „return — najważniejsza zasada”- Wyrażenie traktuj jak wnętrze funkcji. Funkcja bez
returnzwracaundefined, więc zawsze zwracasz to, co wpisałbyś ręcznie we właściwości. Przykład dla podpowiedzi (tooltip):return 'tekst podpowiedzi'; - Nie masz nic do zwrócenia →
return null; - Wyjątek: akcje, np. onChangeExpression. To akcja wywoływana przy zmianie, więc nic nie zwraca i
returnpomijasz.
Co masz do dyspozycji w wyrażeniu
Dział zatytułowany „Co masz do dyspozycji w wyrażeniu”Edytor podpowiada dostępne obiekty, a po najechaniu myszką pokazuje, jak ich użyć:
| Obiekt | Do czego |
|---|---|
data('ścieżka') |
odczyt wartości dowolnego pola po ścieżce |
value() |
wartość pola, w którym jest wyrażenie |
dataModifier |
zmiana wartości pola |
source(...) |
dane z zewnętrznego źródła (lekcja 10) |
contract |
typedef — to, co proces formularza przysłał na formularz |
data() a contract — przykład
Dział zatytułowany „data() a contract — przykład”- Pole tekstowe
debugz wyrażeniem tekstu pokazuje obok siebie uwagi odczytane przezdata()oraz status i uwagi zcontract. - W aplikacji: gdy piszesz w polu uwag, wartość z
data()zmienia się na żywo, a ta zcontractstoi w miejscu. contract= stan z chwili otwarcia formularza.data()= stan pola w momencie, w którym wyrażenie się wykonuje.
Dobre nawyki
Dział zatytułowany „Dobre nawyki”- Odczyty owijaj w
try/catch— błąd odczytu nie wywróci formularza. - Porównuj luźno (
==). Wartość z kontraktu dla tego samego pola może przyjść raz jako liczba, raz jako tekst. - Pisz prosto, żeby kod był łatwy w utrzymaniu.
Zapamiętaj
Dział zatytułowany „Zapamiętaj”Wyrażenie = ciało funkcji z return (poza akcjami). Różnica między contract (otwarcie) a data() (teraz) wraca
w każdej kolejnej lekcji.