要在Apostrophe CMS中获取嵌套连接(joinByArray - joinByOne)中的片段数据,可以按照以下步骤进行操作:
lib/modules
目录下创建一个新的模块文件夹,例如my-nested-module
。在该文件夹中,创建一个index.js
文件,并定义一个继承自apostrophe-pieces
的自定义模块。// lib/modules/my-nested-module/index.js
module.exports = {
extend: 'apostrophe-pieces',
name: 'my-nested-module',
label: 'My Nested Module',
// 其他自定义配置
};
lib/modules/my-nested-module/views
目录中创建一个名为show.html
的片段模板文件。在该文件中,可以使用data.piece
来访问片段数据的属性。
{{ data.piece.title }}
{{ data.piece.description }}
apostrophe-pieces
的子类)的index.js
文件中,定义一个嵌套连接字段,使用joinByArray
或joinByOne
方法将片段模块与主模块连接起来。// lib/modules/apostrophe-pieces/index.js
module.exports = {
extend: 'apostrophe-pieces',
name: 'apostrophe-pieces',
label: 'Apostrophe Pieces',
// 其他自定义配置
addFields: [
{
name: 'nestedModules',
type: 'joinByArray', // 或 'joinByOne'
withType: 'my-nested-module',
idsField: 'nestedModuleIds',
},
],
};
在这个例子中,我们使用了joinByArray
方法,它将允许我们在主模块中连接多个片段模块。如果要连接单个片段模块,可以使用joinByOne
方法。
data.piece.nestedModules
来访问嵌套连接片段的数据。可以使用{% for %}
循环来遍历多个连接的片段。
{{ data.piece.title }}
{{ data.piece.description }}
Nested Modules:
{% for nestedModule in data.piece.nestedModules %}
{{ apos.singleton(nestedModule, 'show', 'my-nested-module-show', { piece: nestedModule }) }}
{% endfor %}
在这个例子中,我们使用了apos.singleton
辅助函数来呈现连接的片段模块的片段模板。
通过以上步骤,您就可以在Apostrophe CMS中获取嵌套连接(joinByArray - joinByOne)中的片段数据了。根据您的需求,您可以根据实际情况对代码进行适当的调整和扩展。