TYPO3 DCE 在流体模板文件中使用大括号

问题描述

我有一个 DCE 内容元素,现在我需要在这个模板中添加一个带有变量文本的 json 对象。

我尝试了很多方法

<f:format.raw>{</f:format.raw>

<f:format.alias map="{l: '{}',r: '}'}"> { json } </f:format.alias>

但没有任何效果

<dce:format.WrapWithCurlyBraces>json</dce:format.WrapWithCurlyBraces>

是我的最后一次测试,但这会生成一个输出。有什么办法可以输出一些带有dce里面的变量的json吗?

<f:format.json>{"context": "https://schema.org/"}</f:format.json>

也经过测试,也生成一个输出

DCE 版本:2.6.0
TYPO3:9.5

解决方法

def form_valid(self,form): user = form.save() group = Group.objects.get(pk=self.request.POST.get('group_id')) user.groups.add(group) 应该可以工作。如果没有,您也可以尝试<f:format.raw>{</f:format.raw>。例如:

<f:format.raw value="{" />
,

您不需要那么多变通办法;) 您只是错误地使用了 JSON-ViewHelper。它需要一个(流体)数组作为输入。

<f:format.json value="{context: 'https://schema.org/'}" />

由于 JSON 中的 " 在输出到 HTML 之前会被转义,我们只对整个字符串使用 f:format:raw

<f:format.raw><f:format.json value="{context: 'https://schema.org/'}" /></f:format.raw>

或者,可能更好:

<f:variable name="jsonData" value="{context: 'https://schema.org/'}" />
{jsonData -> f:format.json() -> f:format.raw()}

这等于:

<f:variable name="jsonData" value="{context: 'https://schema.org/'}" />
<f:format.raw><f:format.json>{jsonData}</f:format.json></f:format.raw>

(在您的情况下,我认为您已经将 jsonData 作为变量 json,不是吗?)