组件实例由组件工厂对象创建。
组件注册文件中的组件工厂对象条目为 initData.componentFactory
。这是对 JavaScript 文件的引用,RequireJS 使用该文件加载组件工厂。它必须返回实施 componentFactory
接口的 JavaScript 对象
组件工厂对象必须实施 API customComponentFactory.createComponent(args)
,其创建组件的每个实例。
args
包含以下设置:
SitesSDK
:Oracle Content Management Sites SDK。
id
:添加到页的组件的唯一 ID (GUID
)。
viewMode
:页正在呈现的当前模式。正在编辑页时,它是“编辑”。预览页时,它是“导航”。在运行时(即发布站点时),该值未定义。可以根据应为每种模式公开的功能,提供不同的实施。例如,页在“编辑”模式下运行时,链接不应处于活动状态。
注:
不需要为您的组件使用 JQuery 或 Knockout,但是如果您要利用 Oracle Content Management 功能(例如嵌套组件),则必须使用 Oracle Content Management 提供的 Knockout 版本。此版本的 Knockout 具有扩展的组件注册和处理程序,否则它们将对您不可用。对于组件自身,在组件实例化时将传递 SDK,以便组件可以与页生命周期通信。页生命周期功能必须由组件实施,并由 Oracle Content Management 调用以在页上呈现组件。
提供了必需和可选 API 来实施组件。
必需 API
customComponent.render(container)
:要求组件将自身插入到提供的 DOM 容器元素。
container
:定制组件 HTML 的 DOM 容器元素。
可选 API
customComponent.dispose()
:在从页中删除组件时调用。为组件提供机会来删除不再需要的任何资源。