Contentful的分层菜单

时间:2017-05-30 17:54:05

标签: contentful

Contentful有一个概念"链接"可以是许多物体或一个物体。但是,我无法找到一种方法来模拟反向关系而不会使工作倍增(即指定每个对象的子节点和父节点)。

我想使用Contentful为这样的简单导航提供支持:

  • 菜单项1

    • 子菜单项1
    • 子菜单项2
    • 子菜单项目3
  • 菜单项2

    • 子菜单项目4
    • 子菜单项目5
    • 子菜单项6
      - 子子菜单项1

链接可能看起来像/<parent.slug>/<child.slug>/<child.slug>/

我可以通过遍历父关系找到要呈现的页面条目,以确保我获得一个带有slug的页面,以及一个具有特定slug的父级。

但是,如果不使用多个API调用,很难渲染子菜单项,除非你包含一个&#34;孩子&#34;对象中的字段 - 容易出错和不一致。

2 个答案:

答案 0 :(得分:1)

如果您的商品只有子关系,您可以利用包含概念。只需获取最下面的子项,并将MyProject --Main --Features --FeatureBranch1 --FeatureBranch2 参数设置为足够高的值(10是最大值),Contentfuls API将在单个API调用中包含所有引用的内容。

您可以在此处详细了解包含内容:https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/links

答案 1 :(得分:1)

是的,我们遇到了同样的问题。我们有一个Page模型,带有一个名为'parentPage'的refLink。我们的中间件调用CF来获取所有页面并在内存中构建站点树模型。

从这个模型中我们有获取子节点的方法,并获取URL slug。