Szablony Handlebars
Widoki, w których podaje się właściwość template, korzystają z biblioteki Handlebars do renderowania szablonów. Dane przekazane do widoku są dostępne wewnątrz szablonu za pomocą standardowej składni Handlebars {{zmienna}}.
Znacznik [template]
W dokumentacji widoków parametry oznaczone [template] obsługują parsowanie Handlebars — możesz w nich używać wyrażeń {{ zmienna }} oraz wszystkich helperów opisanych poniżej.
Przykład: pole label w ButtonView oznaczone [template] pozwala na:
type: button
label: "Witaj, {{ $global.username }}!"
Parametry bez tego znacznika są używane jako plain string — wyrażenia {{ }} nie zostaną przetworzone.
W widokach listowych masz też do dyspozycji notację
.$, która wskazuje bieżący element kolekcji (np.{{ ordersTable.$._id }}). Opisuje ją osobny rozdział: Listy i notacja.$.
Dostępne helpery
formatDate
Formatuje datę za pomocą biblioteki moment.js.
Składnia:
| Parametr | Wymagany | Opis |
|---|---|---|
date | Tak | Data do sformatowania (string, timestamp, obiekt Date) |
format | Nie | Format daty wg moment.js (domyślnie DD.MM.YYYY) |
Przykłady:
ifEquals
Helper blokowy — renderuje zawartość, gdy oba argumenty są sobie równe (porównanie luźne, "23" == 23). Sekcja {{else}} jest opcjonalna.
Arytmetyka: add, sub, mul, div, round, sum
Helpery liczbowe zwracają wartość (nie są blokowe), więc można je zagnieżdżać w podwyrażeniach: {{ round (mul qty price) 2 }}.
Argumenty są konwertowane na liczby — string "12.5" z kontrolki albo z templatki zadziała tak samo jak liczba, a wartość nieliczbowa (pusta, tekst) liczy się jako 0.
| Helper | Składnia | Wynik |
|---|---|---|
add | {{ add a b }} | suma |
sub | {{ sub a b }} | różnica |
mul | {{ mul a b }} | iloczyn |
div | {{ div a b }} | iloraz (dzielenie przez zero daje 0) |
round | {{ round x }} / {{ round x 2 }} | zaokrąglenie do n miejsc (domyślnie 0) |
sum | {{ sum tablica }} / {{ sum tablica "pole" }} | suma elementów albo wskazanego pola |
Porównania: gt, gte, lt, lte, eq, ne
Zwracają true / false, więc używa się ich w podwyrażeniu {{#if ...}}:
gt, gte, lt i lte porównują liczbowo (stringi liczbowe też), a eq i ne luźno (==) — Handlebars i kontrolki formularza zwracają wartości jako tekst.
money
Formatuje liczbę jako kwotę w formacie polskim (Intl.NumberFormat('pl-PL')), zawsze z dwoma miejscami po przecinku. Nie dokleja waluty — symbol albo kod dopisz w treści.
Nazwa helpera przesłania zmienną o tej samej nazwie — unikaj kluczy
add,sum,round,moneyitp. jako nazw zmiennych i pól.
