Implementacja składnika lokalnego

Instancja składnika jest tworzona przy użyciu obiektu "Component Factory".

Wpisem obiektu "Component Factory" w pliku rejestracji składnika jest initData.componentFactory. Stanowi on odwołanie do pliku JavaScript używanego przez RequireJS do załadowania obiektu "Component Factory". Musi zwracać obiekt JavaScript implementujący interfejs componentFactory.

Obiekt "Component Factory" musi implementować interfejs API customComponentFactory.createComponent(arg), tworzący poszczególne instancje składnika.

W arg są zawarte następujące ustawienia:

  • SitesSDK: Oracle Content Management Sites SDK.

  • id: Unikatowy ID (GUID) składnika dodawanego do strony.

  • viewMode: Bieżący tryb renderowania strony. Jeśli strona jest edytowana, wartością jest "Edit". Jeśli jest wyświetlany podgląd strony, wartością jest "Navigate". W trybie wykonawczym, gdy serwis został opublikowany, wartość ta jest niezdefiniowana. Można udostępniać różne implementacje, bazując na funkcjonalności eksponowanej dla poszczególnych trybów. Na przykład, gdy strona działa w trybie edycji, łącza nie powinny być aktywne.

Uwaga:

Używanie bibliotek JQuery lub Knockout dla składnika nie jest wymagane, ale — zamierzając korzystać z funkcji Oracle Content Management, takich jak zagnieżdżanie składników — trzeba używać biblioteki Knockout w wersji udostępnianej przez Oracle Content Management. Wersja ta zapewnia rozbudowaną rejestrację składników oraz rozszerzone procedury obsługi, które w przeciwnym razie byłyby niedostępne.

W zakresie samego składnika biblioteka SDK jest przekazywana, gdy jest tworzona instancja składnika, dzięki czemu składnik może się komunikować z funkcjami cyklu życia strony. Funkcje cyklu życia muszą zostać zaimplementowane przez składnik — są wywoływane przez Oracle Content Management w celu wyrenderowania składnika na stronie.

Są udostępniane wymagane i opcjonalne API umożliwiające implementację składnika.

Wymagane API

customComponent.render(container): Zleca składnikowi, aby sam się wstawił do udostępnianego elementu kontenera DOM.

  • container: Element kontenera DOM dla kodu HTML składnika niestandardowego.

Opcjonalne API

customComponent.dispose(): Wywoływane, gdy składnik jest usuwany ze strony. Umożliwia składnikowi usunięcie wszystkich zasobów, które już nie są potrzebne.