假设在一个项目中存在一个呈现无序列表的展示组件(可能称为 ListRenderer)。我们有几个选项可以向页面上的任何给定 ListRenderer 提供数据:
- 在内容项上有一个 TreeList(或 TreeListEx)字段,并让 ListRenderer 从中读取。
- 通过演示详细信息向 ListRenderer 提供数据源(或其他参数)。
我通常在我的项目中避免使用 #1,因为它将子布局绑定到模板,这会变得非常混乱。如果您沿着这条路走下去,最终您将拥有支持项目中每个潜在子布局的字段。
所以我的解决方案倾向于选项#2,它可以解决这个问题。但是,它确实有自己的问题。我应该将这些不同的“列表”放在哪里供给定的 ListRenderer 使用?为了最大限度地重用和共享,我通常在站点根目录附近创建一个包含所有这些类型的东西的组件目录,如果我预测列表将被共享。对于内容作者来说,这似乎不太容易找到并且更难使用,他们突然不知道他们的 ListRenderer 的来源在哪里,除非他们知道如何打开演示详细信息(这对我的普通用户来说有点先进)。
如果我觉得列表不会被共享,并且非常特定于页面,我会将它们直接放在相关项目的下方。但是,这会混淆内容树,并且任何动态生成的导航子布局都必须在生成指向它的链接之前检查项目是否是实际页面。我在 Sitecore 工作的越多,我使用这种方法的次数就越少,但对内容作者来说似乎更容易。当您使用这种方法时,更容易访问信息。
是否有任何行业接受的方法来解决这个问题?它一直发生在项目中,在我的脑海中,我很难在这种情况下平衡技术和内容作者问题。