Model danych na interfejsie
Wiązanie pól formularza z modelem danych: Kiedy model danych jest już zdefiniowany i podpięty, możemy w formularzu wniosku powiązać konkretne pola (komponenty UI) z polami modelu. W edytorze formularza każdy komponent, który przechowuje jakąś wartość (np. pole tekstowe, pole wyboru, data itp.), posiada właściwość "Klucz modelu danych". Wystarczy wpisać w to pole klucz zdefiniowany w naszym modelu, aby dane z tego komponentu zostały związane z odpowiednim miejscem w modelu. Od tego momentu komponent staje się dwukierunkowo związany (two-way binding) z modelem danych – podczas inicjalizacji formularza wartość z modelu (jeśli istnieje) zostanie wczytana do pola, a gdy użytkownik wypełni lub zmieni tę wartość, zostanie ona zapisana z powrotem do modelu danych przy zapisie wniosku. Oznacza to, że po zapisaniu formularza, wszystkie powiązane pola aktualizują odpowiadające im wartości w modelu danych, dzięki czemu model zawsze odzwierciedla bieżący stan danych wniosku.


Należy pamiętać, że nie każdy komponent formularza można powiązać z modelem. Model danych ma sens tylko dla pól, które przechowują wartości. W związku z tym nie powiążemy z modelem np. takich elementów jak:
linki (odnośniki),
pola typu CAPTCHA,
pojedyncze przyciski radio (poza grupami radiobuttonów),
okna popup,
kody QR (jeśli występują jako obraz/element dekoracyjny).
Wszystkie pozostałe pola (tekstowe, liczbowe, wybory z listy, checkboxy, daty, sekcje itp.) mogą i powinny być powiązane z modeliem danych, jeśli ich wartość ma być zachowana lub użyta poza samym formularzem. Powiązanie to zapewnia spójność – każda dana wprowadzona przez użytkownika ma swoje miejsce w modelu, skąd może być dalej przetwarzana (np. przekazana do procesu).
Obsługa pól tablicowych (list): Model danych umożliwia definiowanie pól będących kolekcjami (tablicami) obiektów lub wartości prostych. Jeśli w modelu dane pole ma mieć wiele powtórzeń (np. lista adresów, listę produktów, itp.), należy ustawić jego multiplicityMax > 1 (np. null dla braku górnego limitu) oraz przygotować odpowiednie źródło danych zwracające kolekcję. W formularzu takie pole może być reprezentowane np. przez Sekcję powtarzalną (Repeatable Section) z odpowiednimi polami wewnątrz. Ważne jest, by poprawnie odwoływać się do elementów tablicy w kluczach modelu:
kolekcja[].pole– odwołanie do wszystkich wystąpień pola w kolekcji (zwraca całą listę wartości lub np. konkatenację, zależnie od kontekstu),kolekcja[0].pole– odwołanie do pola w pierwszym elemencie kolekcji (indeks 0 oznacza pierwszy element, 1 - drugi, itd.),Uwaga: Nie można pomijać indeksu! Składnia
kolekcja.pole(bez[]lub indeksu) jest niepoprawna i spowoduje błąd uniemożliwiający uruchomienie formularza. Zawsze należy użyć notacji tablicowej przy odwołaniu do pól elementów kolekcji.Dla sekcji powtarzalnych w formularzu, w których użytkownik może dynamicznie dodawać/usuwać elementy, Eximee używa zmiennej
_rowIdxprzypisanej do danej sekcji, aby przekazywać indeks bieżącego wiersza. W kluczu modelu pojawia się wtedy identyfikator w postaciNazwaSekcji_rowIdx. Na przykład, jeżeli sekcja powtarzalna jest powiązana z kolekcjąprodukty[]i ma polenazwa, to klucz pola w sekcji może wyglądać:produkty[NazwaSekcji_rowIdx].nazwa. Mechanizm ten zapewnia powiązanie każdego dynamicznie dodanego pola z unikalnym indeksem w modelu.


Last updated
Was this helpful?
