如何在Tridion组件模板中转义被多个模板使用的${}?
我遇到了这样一种情况,即我对值如何在Tridion组件模板中转义被多个模板使用的${}?,tridion,tridion-2011,Tridion,Tridion 2011,我遇到了这样一种情况,即我对值${test}进行了验证,在呈现该值的组件模板中,该值显示正常。当另一个模板调用此组件和使用@@RenderComponentPresentation(component.ID,MyFirstTemplate)的模板时,出现了问题。@@RenderComponentPresentation(component.ID,MyFirstTemplate)@此时${test}进行计算,由于组件或包中没有此类项目,因此计算结果为零 我有一个组件模板,它读取组件字段的值(包含
${test}
进行了验证,在呈现该值的组件模板中,该值显示正常。当另一个模板调用此组件和使用@@RenderComponentPresentation(component.ID,MyFirstTemplate)的模板时,出现了问题。@@RenderComponentPresentation(component.ID,MyFirstTemplate)@
此时${test}
进行计算,由于组件或包中没有此类项目,因此计算结果为零
- 我有一个组件模板,它读取组件字段的值(包含:
)${test}
- 此模板呈现良好,我返回“${test}”
- 现在我有了组件模板2,它调用
@@RenderComponentPresentation(Component.ID,ComponentTemplateOne.ID)@
- 这就是现在对
求值而不是保留的地方,因此它从${test}
变为“”,因为它找不到具有该名称的变量或组件字段名${test}
- 这就是现在对
- 组件模板2然后被组件模板3以相同的方式调用
@@RenderComponentPresentation(Component2.ID,ComponentTemplateTwo.ID)@
- 由于
已经在组件模板2中进行了计算并丢失,因此我不再以${test}
结束,我仍然以“”结束${test}
- 由于
@@RenderComponentField('myField',0,False,False)@
@@RenderComponentField('myField',0,True,False)@
@@RenderComponentField('myField',0,False,True)@
- 将“\”放在打开和关闭的花括号前面
$\{test\}
- 我需要确保在最后一个模板(页面或组件)执行后删除“\”李>
- 我现在有一个C#TBB,它接受“${test}”,并对其执行以下操作:
- 将初始模板中的
转换为${test}
,并将页面模板上的C#TBB转换为$\{test\}
的初始值${test}
- 将初始模板中的
@@"$" + "{" + "test" + "}"@@
感谢您的建议,它适用于第一个模板,但调用第一个模板的第二个模板会对其进行评估,并且在包或组件中找不到具有该名称的项,因此不会重新生成任何内容。因此,我没有保留${endpoint},而是得到“”。