piece._page._url 添加投影后不起作用
piece._page._url nor working after adding projection
我有一个小部件,我可以在其中选择指向网站上其他页面的链接。
在focuslinks-widgets/views/widget.html:
{% for piece in data.widget._pieces %}
<div class="col-md-4 col-sm-4">
<a href="{{ piece._page._url }}" class="button">{{ piece.title }}</a>
</div>
{% endfor %}
我的focuslinks/index.js
module.exports = {
extend: 'apostrophe-pieces',
name: 'focuslink',
label: 'Fokuslink',
pluralLabel: 'Fokuslinker',
addFields: [
{
name: 'title',
label: 'Navn',
type: 'string',
required: true
},
{
name: '_page',
type: 'joinByOne',
withType: 'apostrophe-page',
label: 'Side',
required: true,
idField: 'pageId'
}
]
};
这是按预期工作的,但我遇到了另一个问题,导致页面出现多个关于缺少投影的警告。所以对于上面的小部件,我在 app.js:
中添加了投影
'supernode-focuslinks': {},
'supernode-focuslinks-widgets': {
extend: 'apostrophe-pieces-widgets',
filters: {
projection: {
slug: 1,
title: 1,
type: 1,
tags: 1
}
}
},
在此之后小部件将像以前一样显示,但是 {{ piece._page._url }} 不再生成 href url。我做错了什么?
将 _url: 1
添加到您的投影对象
您在此处编写的投影获取了足够的信息来设置片段本身的 _url
属性,但不是它所连接的页面的信息 (.piece._page._url
)。为此,您将必须确保您的投影还包含页面 ID,以便可以加入。
看起来像:
projection: {
title: 1,
_url: 1,
_page: 1
}
有了这个 shorthand,Apostrophe 使用联接本身的名称为您查找 idField 的名称。同样,如果您指定 _url: 1
,则撇号会替换为一块或一页计算所需的通常嫌疑人。
您还应该向 _page
联接本身添加一个投影。您不想支付加载每张图片的开销,谁知道页面上还有什么只是为了给它制作 link。这可能是导致系统多次回头加载内容,从而导致您看到警告的原因。
我有一个小部件,我可以在其中选择指向网站上其他页面的链接。
在focuslinks-widgets/views/widget.html:
{% for piece in data.widget._pieces %}
<div class="col-md-4 col-sm-4">
<a href="{{ piece._page._url }}" class="button">{{ piece.title }}</a>
</div>
{% endfor %}
我的focuslinks/index.js
module.exports = {
extend: 'apostrophe-pieces',
name: 'focuslink',
label: 'Fokuslink',
pluralLabel: 'Fokuslinker',
addFields: [
{
name: 'title',
label: 'Navn',
type: 'string',
required: true
},
{
name: '_page',
type: 'joinByOne',
withType: 'apostrophe-page',
label: 'Side',
required: true,
idField: 'pageId'
}
]
};
这是按预期工作的,但我遇到了另一个问题,导致页面出现多个关于缺少投影的警告。所以对于上面的小部件,我在 app.js:
中添加了投影'supernode-focuslinks': {},
'supernode-focuslinks-widgets': {
extend: 'apostrophe-pieces-widgets',
filters: {
projection: {
slug: 1,
title: 1,
type: 1,
tags: 1
}
}
},
在此之后小部件将像以前一样显示,但是 {{ piece._page._url }} 不再生成 href url。我做错了什么?
将 _url: 1
添加到您的投影对象
您在此处编写的投影获取了足够的信息来设置片段本身的 _url
属性,但不是它所连接的页面的信息 (.piece._page._url
)。为此,您将必须确保您的投影还包含页面 ID,以便可以加入。
看起来像:
projection: {
title: 1,
_url: 1,
_page: 1
}
有了这个 shorthand,Apostrophe 使用联接本身的名称为您查找 idField 的名称。同样,如果您指定 _url: 1
,则撇号会替换为一块或一页计算所需的通常嫌疑人。
您还应该向 _page
联接本身添加一个投影。您不想支付加载每张图片的开销,谁知道页面上还有什么只是为了给它制作 link。这可能是导致系统多次回头加载内容,从而导致您看到警告的原因。