De componentinstance wordt gemaakt door middel van het componentfactory-object.
De componentfactory-objectingang in het componentregistratiebestand is initData.componentFactory
. Dit is een verwijzing naar een JavaScript-bestand dat door RequireJS wordt gebruikt voor het laden van de componentfactory. Dat levert een JavaScript-object op waarmee de componentFactory
-interface wordt geïmplementeerd.
Het componentfactory-object implementeert de API customComponentFactory.createComponent(args)
, waarmee elke instance van de component wordt gemaakt.
args
bevat deze instellingen:
SitesSDK
: de SDK voor Oracle Content Management sites
id
: de unieke ID (GUID
) voor de component die aan de pagina is toegevoegd.
viewMode
: de huidige modus waarin de pagina wordt weergegeven. Wanneer de pagina wordt bewerkt, is dat "Bewerken". Wanneer de pagina als voorbeeld wordt bekeken, is dat "Navigeren". Tijdens runtime, wanneer de site wordt gepubliceerd, is de waarde niet-gedefinieerd. U kunt verschillende implementaties opgeven, afhankelijk van de gewenste functionaliteit per modus. Bijvoorbeeld: koppelingen mogen niet actief zijn wanneer de pagina wordt bewerkt.
Opmerking:
Het is niet vereist om JQuery of Knockout te gebruiken voor uw component, maar om te kunnen profiteren van bepaalde Oracle Content Management functies, zoals geneste componenten, moet u de door Oracle Content Management geleverde versie van Knockout gebruiken. Deze versie van Knockout bevat uitgebreide componentregistratie en handlers, die anders niet beschikbaar zijn.Voor de component zelf wordt de SDK doorgegeven wanneer de component wordt geïnstantieerd zodat de component kan communiceren met de levenscyclus van de pagina. De functies voor de levenscyclus van de pagina moeten worden geïmplementeerd door de component en worden aangeroepen door Oracle Content Management om de component op de pagina weer te geven.
Er worden verplichte en optionele API's geleverd voor het implementeren van een component.
Verplichte API's
customComponent.render(container)
: hiermee wordt de component gevraagd zichzelf in te voegen in het geleverde DOM-containerelement.
container
: DOM-containerelement voor de aangepaste component-HTML.
Optionele API's
customComponent.dispose()
: deze API wordt aangeroepen wanneer de component uit de pagina wordt verwijderd. Dit biedt de component de mogelijkheid om alle resources die niet meer nodig zijn, te verwijderen.