2

您可能已经知道,我正在努力使用 Razor 制作一些 XPM 模板。我遇到了另一个问题,这次是关于在模板中渲染组件以使它们可站点编辑。

以下我不确定。我有一个组件,它有一个名为“Title”的标题字段,以及由具有标题、描述和图像的组件组成的多值组件链接字段。我们暂时称它为“链接的 USP”。

目前,这是由一个名为“页面横幅”的模板呈现的,它只是用一些 If 循环遍历字段以确定它的呈现方式,尤其是对于标题。为了让 XPM 工作,这个模板需要渲染“Linked USP”的组件表示。所以我们创建了一个名为“[XPM] USP ITEM”的模板。- 此组件模板添加了“启用内容编辑 TBB”。

现在,当我想让标题也可编辑时,问题就出现了。听起来很简单,不是吗?不是真的 - 因为当父模板添加了“启用内容编辑”TBB 时,它会将<span>标签添加到所有可编辑字段,但在此模板中调用的模板也将具有<span>-tags,有效地膨胀 html 并使其由于重复<span>s ,无法编辑 RenderComponentPresentation 中的字段。

一些代码供您娱乐并说明我的问题:

<h1>@RenderComponentField("Title", 0)</h1>

@Foreach(var linkedUSP in Fields.USPS){
     @RenderComponentPresentation("linkedUSP.ID", "tcm:10-1076-32")
}

此模板添加了启用内容编辑 TBB。

现在,对于上面提到的 RCP,在其 [XPM] 模板中:

<div class="title">@RenderComponentField("Title", 0)</div>
    <p>@RenderComponentField("Description", 0)</p>
    <tcdl:ComponentField name="img">
         <img src="@img" alt="img.MetaData.alt">
    </tcdl:ComponentField>

这一个还添加了“启用内容编辑”TBB。在前端会发生这种情况:

<div class="title"><span><span>Men</span></span></div>

因为父模板还向字段添加跨度。

所以我的问题是:我该如何解决这个问题?上面提到的 Title 字段必须在父模板内,但我不能为它创建一个特殊的模板,因为它没有组件链接。我无法将 TBB 从我的 RCP 模板中取出,因为那样无法对其进行编辑。有趣吧?

我不能以某种方式禁用模板构建器中的跨度吗?

4

0 回答 0