Oracle Content Management 组件使用 KnockoutJS 组件体系结构进行实施。这意味着如果您使用 KnockoutJS 实施组件,则可以将 Oracle Content Management 内置组件直接包含到模板中。
注:
由于 Oracle Content Management 内置组件只能在 Oracle Content Management 页中运行,因此当组件在内嵌框架中呈现时无法使用嵌套组件。要利用嵌套组件,请执行以下操作:
使用 KnockoutJS 实施组件。
使用 RequireJS 包含您的组件,并使用 Oracle Content Management 创建的相同 Knockout "ko"
实例变量。
这是必需的,因为 Oracle Content Management 使用组件扩展 Knockout,如果您使用自己的 KnockoutJS 实例,则这些组件将不可用。
在此步骤中,您将回顾如何在您的定制组件中呈现 Oracle Content Management 图像、段落和标题组件。用户将能够在页中直接编辑它,并访问嵌套组件的“设置”面板。
要了解这些组件如何包含在模板中,请编辑 render.js
文件并查看 sampleComponentTemplate
对象。默认呈现的部分如下所示:
'<!-- ko if: alignImage() !== \'right\' -->' + '<div style="display:flex;">' + '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' + '<scs-image params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'imageId\', \'data\': imageData } }"></scs-image>' + '</div>' + '<div data-bind="attr: {style: paragraphStyle}">' + '<scs-title params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'titleId\', \'data\': titleData } }"></scs-title>' + '<scs-paragraph params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'paragraphId\', \'data\': paragraphData } }"></scs-paragraph>' + '</div>' + '</div>' + '<!-- /ko -->' +
查看 <scs-image>
嵌套组件时,您将看到以下条目:
'<scs-image params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'imageId\', \'data\': imageData }}"></scs-image>' +
params
模板绑定的 scsComponent
数据包含以下内容:
renderMode
:这是指站点构建器所处的模式。可以使用此项启用和禁用功能。例如,当它由 <scs-title>
组件使用时,它将在 edit
模式下运行时添加多信息文本编辑器。
parentId
:这是必需的,以便 Oracle Content Management 组件了解它将作为嵌套组件呈现。对嵌套组件的所有更改都将保存在定制组件的数据中。
id
:嵌套组件的唯一 ID。这将进一步根据定制组件的 ID 生成名称空间。
data
:嵌套组件的初始数据。如果未进一步修改组件,它将使用此初始数据呈现。
引用的 id
和 mode
值传入到 SampleComponentViewModel
对象中的定制组件中,因此您不需要修改该对象来获取这些值:
// Store the args self.mode = args.viewMode; self.id = args.id;
所有其他受支持嵌套组件的语法遵循与 <scs-paragraph>
相同的模式;例如:<scs-image>, <scs-title>, <scs-button>
。
检查步骤 10 的结果
刷新站点中的页,以便站点构建器能够获取对组件的更改。
让页进入编辑模式。
将组件拖放到页上。
单击组件中的 As a page author, you can edit. . .
文本,然后使用多信息文本编辑器更新说明。
切换到预览模式以查看更新。
切换回编辑模式。
针对组件打开“设置”面板。
单击现在显示的组件链接,因为它已找到嵌套组件。
单击段落,这是它找到的嵌套组件。
现在可以针对组件中的段落组件更新属性。
注:
在组件已实例化之前,Oracle Content Management 不了解模板中可能存在的任何嵌套组件。要将隐藏的嵌套组件告知 Oracle Content Management,可以使用SitesSDK.setProperty('visibleNestedComponents', []);
API。要在默认情况下显示隐藏的嵌套组件,必须更新组件注册中的 "nestedComponents": []
数组。继续执行步骤 11:支持不同的布局。