尝试使用小部件的html中的一些数据,但我已经陷入困境,只是尝试随机的事情。
如果我说实话,关于游标的文档不够清楚,我无法完全理解,并且在源代码中找不到与我的案例类似的内容。
因此,我们有一些书以及它们所属的一系列书。书籍具有封面图像(和本地化的封面图像,但暂时不介绍)。创建此设置似乎很简单。
//books/index.js
{
name: '_coverImage',
label: 'Cover Image',
type: 'joinByOne',
withType: 'apostrophe-image',
idField: 'coverImageId'
},
{
name: '_bookSeriesGroup',
label: 'Book Series',
type: 'joinByOne',
withType: 'book-series-group',
idField: 'bookSeriesGroupId',
withJoins: [
'_booksGroups._coverImage'
],
filters: {
projection: {
title: 1,
slug: 1,
_booksGroups: 1,
_coverImage: 1
}
}
} ...
使用该代码,我可以遍历books-pages / views / show.html中的book-series-group:
data.piece._bookSeriesGroup
但是,与Rails之类的框架不同,除非我为book-series-group组的书创建另一个joinByArray,否则我无法遍历该关系以获取同一组中的所有书。
//book-series-groups/index.js
{
name: '_seriesGroupBooks',
type: 'joinByOneReverse',
withType: 'book',
reverseOf: '_bookSeriesGroup'
},
{
name: '_booksGroups',
label: 'Books',
type: 'joinByArray',
withType: 'book',
withJoins: ['_coverImage'],
filters: {
projection: {
title: 1,
blurb: 1,
position: 1,
_coverImageId: 1,
_coverImage: 1,
_url: 1
}
}
}
然后让我关注show.html
中的关系{% for seriesBook in data.piece._bookSeriesGroup._booksGroups %}
{% set image = apos.images.first(seriesBook._coverImage) %}
<img class="cover" src="{{ apos.attachments.url(image, {size: 'one-third'}) }}" alt="{{ seriesBook.title }}">
{% endfor %}
好的,但这有两个问题。
在我看来,执行此操作的最佳方法只是在html中通过bookSeriesGroupId查找/过滤所有书籍,但我无法弄清楚如何对整个集合进行处理,而不仅仅是已经过滤的使用apos.utils.filter(data.piece.whatever,'bookSeriesGroupId',theId)列出作品。
您能建议如何正确执行此操作吗?或一些线索?
同样,我想将连接项输入到父级中。例如:
{
name: '_bookPublications',
label: 'Publications',
type: 'joinByArray',
withType: 'book-publication',
filters: {
projection: {
title: 1,
isbn: 1,
format: 1,
rrp: 1,
publicationDate: 1
}
}
}
创建后,我们可以分配任何已分配的出版物,也可以创建新的出版物。有没有一种方法可以使用过滤器来仅显示未分配的出版物,因为当有大量出版物时,它会造成极大的混乱!
修改
tl; dr ....如何处理html中所有书籍的过滤后的集合?