与其他片段相关的片段的上下文编辑

Contextual editing of Pieces related to other pieces

我一直在寻找这个问题的解决方案,这是我唯一看到的问题 On-page, in-context editing of areas nested in array elements does not save。我已经更新了撇号,但我发现它并没有解决我的问题。

在我的作品页面中,我用 apos.area o apos.singleton 显示了与另一个作​​品的连接结果,这意味着您可以编辑这些字段,但是当您重新加载页面时或者你去模态看看第二块的内容有没有变化,你看到没有。但是如果你改变piece-page对应的piece的内容,这个当然会变。

有没有办法显示该字段的内容,但又不让用户认为它是可编辑的,因为实际上它不会在刷新页面时保持更改。

编辑

我在 mi 中有此代码 indix.js

module.exports = {
extend: 'apostrophe-pieces',
name: 'newsletter',
label: 'Newsletter',
pluralLabel: 'Newsletters',
addFields: [
  Other fields... ,
  {
    name: 'body',
    label: 'Newsletter Text',
    type: 'area',
    options: {
      widgets: {
        'apostrophe-rich-text': {
          toolbar: [ 'Styles', 'Bold', 'Italic', 'Link', 'Unlink', 'Anchor', 'Table',
           'BulletedList', 'Blockquote', 'Strike', 'Subscript', 'Superscript', 'Split'],
          styles:[
            { name: 'Title', element: 'h3' },
            { name: 'Meta', element: 'h5' }
          ]
        },
        'apostrophe-images': {}
      }
    }
  },
  {
    name: '_articles',
    label: 'Articles',
    type: 'joinByArray',
    withType: 'article',
  },
 ],
};

在新闻通讯页面 show.html 我有这个

{{ apos.singleton(article, 'body', 'locked-widget', {
     edit: false
  })
}}

如果没有有限的测试用例,对丢失区域的编辑很难诊断,但是在页面上放置一个单独的区域或(我认为)区域但使其不可编辑是很容易的。看起来像这样:

  {{ apos.singleton(data.piece, 'example', 'locked-widget', {
    edit: false
  }) }}

根据 Stuart 的评论更新了 属性 名称。

正如 Alexa 对我的问题的评论,使此文本不可编辑的最佳方法是

{{ apos.areas.richText(article.body) }}

和图片一样,对我有用。

apos.attachments.url(...)