当html作为变量返回时,如何在html中处理TAL表达式?

时间:2016-01-29 21:22:16

标签: plone

如何在context / get_html中声明的tal表达式也由tal解释器处理?是否有一个实用程序,我可以包装在我的浏览器视图中声明的get_html函数?我正在运行Plone 5。

示例:

context / get_html将返回:

<div tal:content="context/Title"></div>

如果从context / get_html返回的html中包含tal表达式,如上所示,则在调用以下内容时不会处理它们:

<div id="content" tal:content="structure context/get_html"></div>

此输出结果:

<div id="content"><div tal:content="context/Title"></div></div>

当所需的输出为:

<div id="content"><div>My Title</div></div>

感谢您帮助或花时间阅读本文。

2 个答案:

答案 0 :(得分:3)

你想使用金属宏来实现这一目标!

例如,get_html是一个包含以下内容的页面模板:

<metal:friendlyname define-macro="my-macro">
  <div id="content"><div tal:content="context/Title"></div></div>
</metal:friendlyname>

和use_macro是另一个包含以下内容的模板:

<metal:anothername use-macro="context/get_html/macros/my-macro" />

我访问/ your / context / use_macro渲染的输出完全是:

<div id="content"><div>Your Title ;)</div></div>

请查看此内容以供参考:

答案 1 :(得分:1)

塔尔没有这样做。一切都需要在模板中才能被处理。

如果您正在使用变色龙(如果您使用的是Plone 5,那么如果您使用了一些插件,则可以使用Plone 4),您可以在视图代码中执行此操作:

from chameleon import PageTemplate
template = PageTemplate("<div tal:content="context/Title"></div>")
template(context=context)