A instância do componente é criada pelo objeto Factory de Componentes.
A entrada do objeto Factory de Componentes no arquivo de registro de componentes é initData.componentFactory
. Essa é uma referência a um arquivo JavaScript que o RequireJS usa para carregar a factory de componentes. Ela deve retornar um objeto JavaScript que implemente a interface componentFactory
.
O objeto Factory de Componentes deve implementar a API customComponentFactory.createComponent(args)
, que cria cada instância do componente.
args
contém estas definições:
SitesSDK
: O Sites SDK do Oracle Content Management.
id
: o ID exclusivo (GUID
) do componente adicionado à página.
viewMode
: o modo atual em que a página está sendo renderizada. Quando uma página está sendo editada, é "Editar". Quando uma página é visualizada, é "Navegar". No runtime, que é quando o site é publicado, o valor é indefinido. Você pode fornecer implementações diferentes com base na funcionalidade que deve ser exposta para cada modo. Por exemplo, links não devem estar ativos quando a página está em execução no modo de Edição.
Nota:
Não é uma exigência usar JQuery ou Knockout para seu componente, mas se você quiser utilizar as funcionalidades do Oracle Content Management, como componentes aninhados, use a versão do Knockout fornecida pelo Oracle Content Management. Essa versão do Knockout estendeu o registro e os handlers de componentes, que do contrário não estariam disponíveis a você.Para o componente propriamente dito, o SDK é transmitido quando o componente é instanciado, de modo que possa se comunicar com o ciclo de vida da página. As funções de ciclo de vida da página devem ser implementadas pelo componente e são chamadas pelo Oracle Content Management para renderizar o componente na página.
São fornecidas APIs obrigatórias e opcionais para implementar um componente.
APIs Obrigatórias
customComponent.render(container)
: solicita que o componente insira a si próprio no elemento do contêiner DOM fornecido.
container
: o elemento do contêiner DOM para o HTML do componente personalizado.
APIs Opcionais
customComponent.dispose()
: chamado quando o componente está sendo removido da página. Fornece uma oportunidade para o componente remover qualquer recurso que não seja mais necessário.