Dieses Dokument wurde von KI übersetzt. Für genaue Informationen lesen Sie bitte die englische Version.
Eine auf einzelne Datensätze ausgerichtete Resource: Die Daten bestehen aus einem einzelnen Objekt. Sie unterstützt das Abrufen per Hauptschlüssel, das Erstellen/Aktualisieren (save) sowie das Löschen. Sie eignet sich für Szenarien mit „einzelnen Datensätzen“ wie Details oder Formulare. Im Gegensatz zur MultiRecordResource gibt getData() bei der SingleRecordResource ein einzelnes Objekt zurück. Über setFilterByTk(id) wird der Hauptschlüssel festgelegt, und save() ruft je nach Zustand von isNewRecord automatisch create oder update auf.
Vererbungshierarchie: FlowResource → APIResource → BaseRecordResource → SingleRecordResource.
Erstellung: ctx.makeResource('SingleRecordResource') oder ctx.initResource('SingleRecordResource'). Vor der Verwendung muss setResourceName('Sammlungsname') aufgerufen werden. Bei Operationen über den Hauptschlüssel ist setFilterByTk(id) erforderlich. In RunJS wird ctx.api durch die Laufzeitumgebung injiziert.
| Szenario | Beschreibung |
|---|---|
| Details-Block | Der Details-Block verwendet standardmäßig die SingleRecordResource, um einen einzelnen Datensatz anhand des Hauptschlüssels zu laden. |
| Formular-Block | Formulare zum Erstellen/Bearbeiten verwenden die SingleRecordResource, wobei save() automatisch zwischen create und update unterscheidet. |
| JSBlock Details | Laden eines einzelnen Benutzers, Auftrags usw. in einem JSBlock zur benutzerdefinierten Darstellung. |
| Verknüpfte Ressourcen | Laden verknüpfter einzelner Datensätze im Format users.profile, erfordert die Verwendung von setSourceId(ID des übergeordneten Datensatzes). |
getData() gibt ein einzelnes Datensatz-Objekt zurück, was dem Feld data der Get-Schnittstelle entspricht.getMeta() gibt Metainformationen zurück (falls vorhanden).| Methode | Beschreibung |
|---|---|
setResourceName(name) / getResourceName() | Ressourcenname, z. B. 'users', 'users.profile' (verknüpfte Resource). |
setSourceId(id) / getSourceId() | ID des übergeordneten Datensatzes bei verknüpften Ressourcen (z. B. benötigt users.profile den Hauptschlüssel von users). |
setDataSourceKey(key) / getDataSourceKey() | Identifikator der Datenquelle (wird bei mehreren Datenquellen verwendet). |
setFilterByTk(tk) / getFilterByTk() | Hauptschlüssel des aktuellen Datensatzes; nach dem Festlegen ist isNewRecord gleich false. |
| Eigenschaft/Methode | Beschreibung |
|---|---|
isNewRecord | Gibt an, ob es sich um einen „Neu“-Zustand handelt (true, wenn filterByTk nicht gesetzt ist oder der Datensatz neu erstellt wurde). |
| Methode | Beschreibung |
|---|---|
setFilter(filter) / getFilter() | Filterung (verfügbar, wenn kein „Neu“-Zustand vorliegt). |
setFields(fields) / getFields() | Abgefragte Felder. |
setAppends(appends) / getAppends() / addAppends / removeAppends | Verknüpfungserweiterungen (Appends). |
| Methode | Beschreibung |
|---|---|
refresh() | Führt eine Get-Anfrage basierend auf dem aktuellen filterByTk aus und aktualisiert getData(); im „Neu“-Zustand erfolgt keine Anfrage. |
save(data, options?) | Ruft beim Erstellen create auf, andernfalls update; optional verhindert { refresh: false } die automatische Aktualisierung. |
destroy(options?) | Löscht den Datensatz basierend auf dem aktuellen filterByTk und leert die lokalen Daten. |
runAction(actionName, options) | Ruft eine beliebige Ressourcen-Aktion (Action) auf. |
| Methode | Beschreibung |
|---|---|
setSaveActionOptions(options) | Anfragekonfiguration für die save-Aktion. |
on('refresh', fn) / on('saved', fn) | Wird nach Abschluss der Aktualisierung bzw. nach dem Speichern ausgelöst. |
setResourceName('Sammlungsname') aufrufen, da sonst die Anfrage-URL nicht erstellt werden kann.setFilterByTk nicht gesetzt ist, ist isNewRecord true und refresh() sendet keine Anfrage; save() führt dann ein create aus.parent.child vorliegt (z. B. users.profile), müssen Sie zuerst setSourceId(Hauptschlüssel des Eltern-Datensatzes) aufrufen.data sind ein Datensatz-Objekt; getData() gibt dieses Objekt direkt zurück. Nach destroy() ist der Wert null.ctx.resource binden