在ApostropheCMS中,可以使用_children
键在apostrophe-pages
模块下填充子页面。以下是一个示例解决方法:
首先,在lib/modules/apostrophe-pages/index.js
文件中,将_children
选项设置为true
,如下所示:
module.exports = {
extend: 'apostrophe-pages',
options: {
_children: true
},
// ...
};
然后,在你的特定页面模块中,定义一个_children
方法来返回子页面的查询结果。例如,创建一个lib/modules/my-page/index.js
文件:
module.exports = {
extend: 'apostrophe-pages',
addFields: [
{
name: '_children',
type: 'joinByOne',
withType: 'apostrophe-page'
}
],
construct: function(self, options) {
self.pagesHelpers._children = function(page) {
return self.apos.pages.find({ parentId: page._id }).toArray();
};
}
};
在上述示例中,我们使用joinByOne
字段类型来关联子页面,并通过self.pagesHelpers._children
方法来查询并返回子页面的数组。
最后,在你的页面模板中,你可以通过data.page._children
来访问子页面的数组。例如,在views/pages/my-page.html
文件中:
{% for child in data.page._children %}
{{ child.title }}
{% endfor %}
这样,当实际上存在子页面时,你就可以在apostrophe-pages
下填充_children
键了。请注意,为了使这个解决方法生效,你需要在ApostropheCMS中安装和配置apostrophe-pages
模块。