Apostrophe cms 删除撇号cms模块中作为选项参数的字段

Apostrophe cms 删除撇号cms模块中作为选项参数的字段,apostrophe-cms,Apostrophe Cms,我目前正在尝试让我的模块正常工作。通过添加字段来扩展模块非常有效。我使用了几个模块(例如“Triser”)来扩展“container”,它定义了一些基本选项,比如大小 这是我的容器,定义了一个“大小”选项: 这是我的摘要,扩展容器: module.exports = { extend: 'container-widgets', label: 'Teaser', contextualOnly: false, addFields: [ { name: 'tease

我目前正在尝试让我的模块正常工作。通过添加字段来扩展模块非常有效。我使用了几个模块(例如“Triser”)来扩展“container”,它定义了一些基本选项,比如大小

这是我的容器,定义了一个“大小”选项:

这是我的摘要,扩展容器:

module.exports = {
  extend: 'container-widgets',
  label: 'Teaser',
  contextualOnly: false,
  addFields: [
    {
      name: 'teasertext',
      label: 'Text',
      type: 'string',
      textarea: true
    },
    {
      name: 'teaserurl',
      label: 'Link',
      type: 'string',
      required: true
    },
    {
      name: 'image',
      label: 'Teaser Image',
      type: 'singleton',
      widgetType: 'apostrophe-images',
      options: {
        limit: 1
      },
      required: true
    }
  ]
};
然后我将容器包括在页面标记中:

{{ apos.area(data.page, 'body', { widgets: { 'container': {} } }) }}
和容器标记中的摘要:

{{ apos.area(data.widget, 'contentBlock', { widgets: { 'teaser': {} } }) }}
问题是,在某些情况下,我不想给用户“size”选项,因为摘要可以嵌套在已经定义了大小的其他模块中。因此,我想传递一个删除“size”选项的参数。这并不像我想的那样有效,但我不知道这样是否可行

我试着在这个例子中加入一个挑逗者,如下所示:

{{ apos.area(data.widget, 'contentBlock', { widgets: {
    'teaser': {
      removeFields: ['size']
    }
 } }) }}

这是不可能的还是我弄错了什么?

您不能在传递给
apos.area
的选项中使用
removeFields
,因为对于该类型的所有小部件,小部件的架构都是在启动时确定的

但是,您可以
扩展
您的
摘要小部件
模块,以创建一个
简单摘要小部件
模块,该模块使用
移除字段
来移除
大小
字段。然后,您可以将所需的小部件类型放在每个区域中,而忽略其他区域

index.js
对于
simple-trister-widgets
来说确实非常简单:

module.exports = {
  extend: 'teaser-widgets',
  label: 'Simple Teaser'
};

嗨,汤姆,谢谢你的回答。这是我的另一个想法,以防你刚才写的不可能。好吧,我就这么做。再次感谢你,继续努力!
module.exports = {
  extend: 'teaser-widgets',
  label: 'Simple Teaser'
};