【问题标题】:Nested sitecore components showing incorrect renderings嵌套的站点核心组件显示不正确的渲染
【发布时间】:2016-05-10 21:32:34
【问题描述】:

情景 在 Sitecore 8 站点中,我们有一个名为 Related Video Panel 的组件,它有一个标题字段和一个占位符,允许编辑器使用 Related Video 组件拖放到它上面体验编辑器。

Related Video PanelRelated Video 都是通过 GlassMapper 填充的 MVC 控制器渲染。

问题 - 重新创建的步骤(全部通过体验编辑器)

  1. 相关视频面板放在右侧导轨上。当提示输入数据源时,选择 create new 并将其命名为 Panel1
  2. 保存
  3. 在第 1 步中创建的面板上拖放一个相关视频组件
  4. 保存
  5. 通过单击红色 X 将整个组件从右侧导轨中移除
  6. 保存。
  7. 重复步骤 1,再次创建一个全新的面板,将其命名为 Panel2

在第 7 步之后,我希望看到一个空白的相关视频面板,但我们看到的是一个 相关视频面板,其中已经添加了 相关视频给它。

到目前为止的故障排除 每次我将面板放到页面上时,我都会添加一个标题来测试面板是否是新的。标题每次都是新鲜的,所以我知道它显示的是一个全新的面板,即使渲染显示不正确。

我还验证了新选项卡面板上的演示详细信息是空的,因此没有明确设置项目的演示详细信息以使其显示。

我验证它必须与特定占位符相关,因为如果我在同一页面上的不同占位符上执行上述步骤,我会按预期得到空白面板。

总结 这看起来确实可能是一个 Sitecore 错误,尽管我在没有进一步调查/讨论的情况下犹豫是否要去那里。我的配置中可能还有其他东西搞砸了。我很困惑,我不确定还有什么要调查的。我也可能会向 Sitecore 开一张票。有没有人遇到过这样的问题?

【问题讨论】:

  • 这是标准的 Sitecore 行为。当您移除 Panel 时,嵌套组件不会被移除,您可以通过检查 Presentation Details 上的组件来验证这一点。再次添加 Panel 时,现有组件仍然绑定到 Panel Placeholder,从而重新出现。
  • 我从没想过它会这样工作,但它是有道理的。今晚我会更多地玩弄它。
  • @jammykam 我会将您的评论转换为答案。

标签: sitecore components sitecore8 sitecore-mvc


【解决方案1】:

不幸的是,您描述的问题是 Sitecore 中的标准行为。当您删除定义占位符的控件时,放置在这些占位符中的组件不会被删除,而是成为孤立的。您可以通过查看 Presentation Details 来确认这一点,并且您可以验证这些嵌套渲染是否仍然列出。当您再次使用占位符添加面板时,现有的渲染会重新出现,因为它们仍然绑定到该占位符键。

您必须编写一些自定义代码,连接到 item:saving,然后检查 Layout/Final Layout 字段中是否存在任何孤立的渲染,然后将其删除。

【讨论】:

  • 我今天早些时候证实了这一点,这完全可以理解为什么会发生一切。谢谢!
  • 有没有人有去除嵌套渲染的示例代码?
  • 顺便说一下,这种行为已经通过动态占位符得到了改进,因为任何 ph 都有唯一的 ID。 Orpahn 渲染仍然是个问题
猜你喜欢
  • 2018-11-26
  • 1970-01-01
  • 2018-07-08
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
相关资源
最近更新 更多