您如何在页面索引中显示某个片段的小部件内容?

How do you show a widget content of a piece in a page's index?

我很难在 Apsotrophe CMS 上显示一些内容。

我正在使用 apostrophe-pieces 创建描述字段:

{
  name: 'description',
  label: 'Description',
  type: 'singleton',
  widgetType: 'apostrophe-rich-text',
  options: {
    toolbar: [ 'Bold', 'Italic', 'Link', 'Unlink' ]
  }
}

我希望它显示在自定义页面的 index.html 视图中。

但是,使用 {{ apos.singleton(data.piece, 'description', 'apostrophe-rich-text') }} 会出现错误,无法呈现页面。它仅适用于 show.html

/lib/modules/basics-pages/views/index.html中,我的代码是:

{% extends "apostrophe-pages:outerLayoutBase.html" %}

{% block content %}
  <div class="basics-grid">
    {% for piece in data.pieces %}
      <article>
        <h4>{{ piece.title }}</h4>
        {% set image = apos.images.first(piece.icon) %}
        {% if image %}
          <img src="{{ apos.attachments.url(image, { size: 'one-sixth' }) }}" />
        {% endif %}
        <div class="desc">
        {{ apos.singleton(data.piece, 'description', 'apostrophe-rich-text') }}
        </div>
      </article>
    {% endfor %}
  </div>
{% endblock %}

有人可以帮我提供正确的代码来显示单例小部件的内容吗?

如您所知,我是 P'unk Avenue 的 Apostrophe 的首席开发人员。

此代码:

{% for piece in data.pieces %}

表示您有一个名为 piece 的循环变量。这就是你想要的。

此代码:

{{ apos.singleton(data.piece, 'description', 'apostrophe-rich-text') }}

寻找 piece 作为 data 的 属性 并忽略你的循环变量。

删除 data. 就可以了。

您需要添加:

{{ apos.singleton(piece, 'description', 'apostrophe-rich-text', { edit: false }) }}

避免在索引页上进行内联编辑,这会造成混乱而不是有用。