具有内容的分层菜单

Guy*_*den 6 contentful

Contentful 有一个“链接”的概念,它可以指向许多对象或一个。但是,我无法找到一种方法来模拟反向关系而不加倍工作(即指定每个对象的子项和父项)。

我想使用 Contentful 来支持一个简单的导航,如下所示:

  • 菜单项 1

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

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

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

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

但是,除非您在对象中包含“子项”字段,否则很难在不诉诸多个 API 调用的情况下呈现子菜单项 - 这容易出错和不一致。

Wil*_*ock 2

是的,我们也遇到了同样的问题。我们有一个页面模型,带有一个名为“parentPage”的 refLink。我们的中间件对 CF 进行 1 次调用以获取所有页面并在内存中构建站点树模型。

从这个模型中,我们有方法来获取子项,并获取 URL slug。