Implementierung von lokaler Komponente

Die Komponenteninstanz wird vom Component-Factory-Objekt erstellt.

Der Component-Factory-Objekteintrag in der Komponentenregistrierungsdatei lautet initData.componentFactory. Das ist eine Referenz zu einer JavaScript-Datei, mit der RequireJS die Component Factory lädt. Sie muss ein JavaScript-Objekt zurückgeben, das die componentFactory-Schnittstelle implementiert.

Das Component-Factory-Objekt muss die API customComponentFactory.createComponent(args) implementieren, die jede Instanz der Komponente erstellt.

args enthält die folgenden Einstellungen:

  • SitesSDK: Das Sites-SDK von Oracle Content Management.

  • id: Die eindeutige ID (GUID) für die Komponente, die der Seite hinzugefügt wird.

  • viewMode: Der aktuelle Renderingmodus der Seite. Beim Bearbeiten einer Seite lautet dieser "Edit". Bei der Vorschau einer Seite lautet er "Navigate". Zur Laufzeit, während der die Site veröffentlicht wird, ist der Wert nicht definiert. Sie können verschiedene Implementierungen bereitstellen, je nachdem, welche Funktionen für jeden Modus verfügbar gemacht werden sollen. Zum Beispiel sollten Links im Bearbeitungsmodus nicht aktiv sein.

Hinweis:

Die Verwendung von JQuery oder Knockout für die Komponente ist keine Voraussetzung. Wenn Sie aber Oracle Content Management-Features wie verschachtelte Komponenten nutzen möchten, müssen Sie die von Oracle Content Management bereitgestellte Knockout-Version verwenden. Diese Knockout-Version bietet erweiterte Komponentenregistrierung und Handler, die ansonsten nicht zur Verfügung stehen.

Für die Komponente selbst wird das SDK übergeben, wenn die Komponente instanziiert wird. So kann die Komponente mit dem Seitenlebenszyklus kommunizieren. Die Seitenlebenszyklusfunktionen müssen von der Komponente implementiert werden und werden von Oracle Content Management aufgerufen, um die Komponente auf der Seite zu rendern.

Obligatorische und optionale APIs werden zur Implementierung einer Komponente bereitgestellt.

Obligatorische APIs

customComponent.render(container): Weist die Komponente an, sich selbst in das angegebene DOM-Containerelement einzufügen.

  • container: DOM-Containerelement für die HTML der benutzerdefinierten Komponente.

Optionale APIs

customComponent.dispose(): Wird aufgerufen, wenn die Komponente von der Seite entfernt wird. Damit kann die Komponente Ressourcen entfernen, die nicht mehr benötigt werden.