Tworzenie szablonów
Szablony dokumentów w THTG – wstęp
System THTG pozwala na generowanie wypełnionych dokumentów na podstawie:
- danych znajdujących się w systemie,
- szablonu dokumentu.
Do tego celu wykorzystywany jest system znaczników znany z AngularJS.
W momencie wyboru szablonu do generowania dokumentu system:
- tworzy dane z systemu w formacie JSON,
- pobiera szablon dokumentu,
- przekazuje dane i szablon do aplikacji generującej dokument,
- aplikacja buduje uzupełniony dokument.
Wyświetlanie tekstu
Dane można wyświetlać w dokumencie przy użyciu zapisu: {{pole}}
gdzie pole jest nazwą klucza z danych JSON.
Przykład
Dane:
{
"imie": "Adam"
}
Szablon: Mam na imię {{imie}}.
Wynik: Mam na imię Adam.
Parser wyszukuje klucz imie w JSON i wstawia jego wartość.
Wyświetlanie danych z zagnieżdżonego JSON
Często dane JSON mają strukturę zagnieżdżoną.
- Dane:
{
"imie": "Adam",
"adres": {
"ulica": "Poziomkowa",
"miasto": "Poznań"
}
}
Aby odwołać się do zagnieżdżonych danych, należy użyć kropki.
Mam na imię {{imie}}. Mieszkam na ulicy {{adres.ulica}} w mieście {{adres.miasto}}.
- Wynik: Mam na imię Adam. Mieszkam na ulicy Poziomkowa w mieście Poznań.
Głębsze zagnieżdżenia
Zagnieżdżenia mogą być wielopoziomowe.
Dane:
{
"imie": "Adam",
"adres": {
"ulica": "Poziomkowa",
"miasto": "Poznań",
"poczta": {
"kod": "61-100",
"miasto": "m. Poznań"
}
}
}
- Szablon
Mam na imię {{imie}}. Mieszkam na ulicy {{adres.ulica}} w mieście {{adres.miasto}}, kod pocztowy {{adres.poczta.kod}} poczta {{adres.poczta.miasto}}.
- Wynik
Mam na imię Adam. Mieszkam na ulicy Poziomkowa w mieście Poznań, kod pocztowy 61-100 poczta m. Poznań.
Wchodzenie do zagnieżdżenia
Aby uniknąć wielokrotnego wpisywania nazwy obiektu, można wejść w jego kontekst.
- Do tego służy zapis:
{{#klucz}} ... {{/}}
- Przykład
Mam na imię {{imie}}. Mieszkam na ulicy {{#adres}}{{ulica}} w mieście {{miasto}}, kod pocztowy {{poczta.kod}} poczta {{poczta.miasto}}{{/}}
Po użyciu {{#adres}} parser przechodzi do wnętrza obiektu adres. {{/}} oznacza powrót do wcześniejszego poziomu.
Wyszukiwanie kluczy przez parser
Jeśli parser nie znajdzie klucza w bieżącym poziomie, zacznie szukać wyżej w strukturze.
- Dane
{
"imie": "Adam",
"adres": {
"ulica": "Poziomkowa"
},
"zona": {
"imie": "Natalia",
"nazwisko": "Nowak"
}
}
- Szablon
{{#adres}}Mam na imię {{imie}}, mieszkam na ulicy {{ulica}}.{{/}}
- Wynik
Mam na imię Adam, mieszkam na ulicy Poziomkowa.
Parser nie przechodzi do innych gałęzi struktury JSON – szuka tylko w górę struktury.
Instrukcje warunkowe
Instrukcje warunkowe pozwalają wyświetlać treść tylko wtedy, gdy spełniony jest określony warunek.
- Dane:
{
"imie": "Adam",
"plec": "mezczyzna"
}
- Szablon:
{{#plec=='mezczyzna'}}Pan{{/}} {{imie}}
- Wynik
Pan Adam
Jeśli warunek nie zostanie spełniony, tekst nie zostanie wyświetlony.
- Przykład:
{{#plec=='kobieta'}}Pani{{/}} {{imie}}
- Wynik:
Adam
Złożone warunki
Warunki mogą być bardziej rozbudowane, tak jak w JavaScript.
- Przykład
{{#plec=='mezczyzna' && imie=='Adam'}}Ok{{/}}
Tekst Ok pojawi się tylko wtedy, gdy:
-
plec = mezczyzna
-
imie = Adam
Filtry
Filtry pozwalają formatować dane wyświetlane w dokumencie.
Formatowanie ceny (currency)
- Dane:
{
"price": 10032.23
}
- Szablon:
{{price | currency}}
- Wynik:
10 032,23 zł
Wyświetlanie kwoty bez waluty
- Szablon:
Cena komórki lokatorskiej: {{price | currency:''}} PLN
- Wynik
Cena komórki lokatorskiej: 10 032,23 PLN
Wyświetlanie kwoty z własną walutą
- Szablon:
Cena komórki lokatorskiej: {{price | currency:'PLN'}}
- Wynik:
Cena komórki lokatorskiej: 10 032,23 PLN