Apostrophe CMS

时间:2016-11-25 12:44:08

标签: apostrophe-cms

我有一个包含不同非必填字段的小部件。除了视频字段外,每个“required:false”都很有效:提交时,如果为空,该字段将变为红色。

index.js文件:

module.exports = {
  extend: 'apostrophe-widgets',
  label: 'Hero',
  addFields: [
    {
      name: 'image',
      type: 'attachment',
      label: 'Image',
      required: false
    },
    {
      name: 'video',
      type: 'video',
      label: 'Video',
      required: false
    },
    {
      name: 'description',
      type: 'string',
      label: 'Description',
      required: false
    },
  ],
};

例如,如果我提供YouTube视频网址,则可以正常使用。但如果我不想要视频,我就无法保存小部件。我的问题:“视频”字段类型是否管理“必需:false”或是否有诀窍才能使其正常工作?

1 个答案:

答案 0 :(得分:0)

我回答自己:视频类型是一个模块,包含一个必需= true的输入。

因此,除非修改(扩展?)来自Apostrophe的代码,否则解决方案是创建第二个小部件来处理视频类型。这就是我所做的。

然后在我的“主页”视图中,我添加了一个包含2个小部件的区域,但限制为1,强制用户仅创建2个小部件(图片或视频):

{{ 
   apos.area(data.page, 'body', { 
       widgets: {
         'hero-video': {},
         'hero-picture': {}
       },
       limit: 1
   })
}}