1

我正在尝试使用一singleton组将图像添加到页面类型slideshow widgetType

界面工作正常(可以上传图片,限制上传到设置变量),但我无法访问模板中的对象

我在页面模板中使用以下脚本记录页面对象,其他所有自定义字段都可以正常工作,只是幻灯片小部件不行。

var data = {{ page | json }};
console.log(data);

这是 app.js 中设置的内容

project: {
  extend: 'apostrophe-fancy-page',
  name: 'project',
  label: 'Project',
  addFields: [
    {
      name: 'thumb',
      label: 'Thumbnail',
      type: 'singleton',
      widgetType: 'slideshow',
      options: {
        limit: 1
      }
    }
  ]
}

有什么建议吗?

4

1 回答 1

0

唔。您没有指定,但我怀疑您正在尝试从模板访问另一个页面的缩略图,该页面可以作为相关页面信息访问它,例如 page.ancestors 或 page.children。如果单例是在页面本身的模板上呈现的,那么您将不会遇到任何问题。

关于相关页面信息的事情是,出于性能原因,撇号限制了它包含在这些数组中的信息量。

但是,您可以指定需要更多信息。这是我们一个项目的文件pages属性中的一个示例:app.js

pages: {
  // other config like page types goes here, then...
  ancestorOptions: {
    children: true,
    areas: [ 'thumbnail' ]
  },
  descendantOptions: {
    depth: 2,
    areas: [ 'thumbnail' ]
  }
}

在这里,我们启用:

  • 包括.children每个祖先的数组page.ancestors,用于手风琴导航
  • 包括thumbnail为每个祖先调用的区域
  • 包括thumbnail为当前页面的每个子页面调用的区域 ( page.children)
  • page.children[0].children还包括用于下拉导航的孙子

当您加载更多数据时,您付出的代价就是多一点时间。当您需要很多但又不想获取数千个页面并通过获取更多数据来“水合”它们的所有小部件时,这是一个很好的折衷设置。

如果我弄错了,并且您在页面本身的页面模板上执行此操作,但仍然无法正常工作,请提供一些示例,我可以查看这些示例。

(我是 Apostrophe 的主要开发人员之一。很抱歉没有早点看到这个问题。StackOverflow 是一个很好的地方,现在 2.0 稳定版已经发布,我们将在未来更密切地监控。)

于 2016-09-10T14:59:17.903 回答