Formulare einbetten

Zuletzt geändert am:

Dieser Artikel beschreibt, wie Sie Formcentric-Formulare in Ihre Website einbetten.

Installation des Formcentric-Clients

Installieren Sie zunächst den Formcentric-Client in Ihrem Projekt:



Wenn Sie lokale SCSS-Dateien eines Themes einbinden möchten, benötigen Sie außerdem SASS:


Angular-Integration über das SDK

Die Einbettung erfolgt über die Funktion mount() aus @formcentric/client. Da es derzeit keine offizielle Angular-Komponente gibt, empfiehlt es sich, eine kleine projektspezifische Angular-Wrapper-Komponente zu erstellen.

Eine mögliche Implementierung könnte so aussehen:

formcentric.component.ts:


formcentric.component.html:


Verwendung der Komponente:


Einbindung eines lokalen Themes

Die Theme-Ressourcen können direkt als SCSS und JavaScript in die Angular-Anwendung integriert werden.

Importieren Sie die Styles des ausgewählten Themes zum Beispiel in src/styles.scss:


Importieren Sie anschließend die JavaScript-Templates des Themes in Ihre Angular-Anwendung, zum Beispiel in main.ts oder in Ihre lokale Wrapper-Komponente:


Ergänzen Sie danach die mount()-Konfiguration:



Beachten Sie dabei:

  1. Die Theme-Styles müssen durch Ihre Anwendung selbst geladen werden.
  2. Die JavaScript-Templates des Themes müssen ebenfalls lokal importiert werden.
  3. Mit skipThemeLoad: true und skipTemplatesLoad: true wird verhindert, dass dieselben Ressourcen zusätzlich zur Laufzeit geladen werden.


Wenn Sie Theme-Variablen direkt übergeben möchten, können Sie diese zusätzlich in der Konfiguration setzen:


Rückgabewert und Lebenszyklus

mount() liefert eine Instanz mit Lifecycle-Methoden zurück. Diese kann verwendet werden, um die eingebettete Form gezielt zu steuern.

Beispiel:


Dabei gilt:

  1. ready wird aufgelöst, sobald die Initialisierung erfolgreich abgeschlossen wurde.
  2. reload() initialisiert das Formular im gleichen Container neu.
  3. stop() beendet die laufende Instanz, belässt das Ziel-Element jedoch im DOM.
  4. unmount() entfernt die Form und bereinigt die Instanz vollständig.

Reinitialisierung und Konfigurationsänderungen

Die SDK-Integration ist restart-basiert. Konfigurationswerte werden beim Initialisieren übernommen und nicht automatisch live in eine laufende Instanz übertragen.

Wenn sich Konfigurationswerte ändern, sollte die Einbettung explizit neu aufgebaut werden, zum Beispiel über ein kontrolliertes unmount() und anschließendes erneutes mount().

Für Angular empfiehlt sich hierfür ein eigener Input wie remountKey, der eine gezielte Reinitialisierung auslöst.

Dabei gilt:

  1. Änderungen an remountKey sollten eine erneute Initialisierung auslösen.
  2. Auch Änderungen an embedId oder formDefinition sollten zu einer erneuten Einbettung führen.
  3. Wenn bewusst mit Instanzübergaben gearbeitet wird, sollte embedId stabil bleiben.
  4. Für andere Konfigurationsänderungen sollte die Komponente kontrolliert remounten.

Ereignisse und Fehlerbehandlung

Für einfache Integrationsfälle können optionale Callbacks direkt in der Konfiguration verwendet werden:

  1. onReady: wird nach erfolgreicher Initialisierung aufgerufen
  2. onError: wird bei Initialisierungs- oder Laufzeitfehlern aufgerufen

Beispiel:


Wenn Sie eine eigene Angular-Wrapper-Komponente verwenden, können diese Callbacks zusätzlich über @Output()-Events nach außen weitergereicht werden, zum Beispiel als ready und error.

Feedback