typo3 - TYPO3:在 JavaScript 中使用 Fluid 变量?
问题描述
我用模板写了一个 TYPO3 扩展。在该模板中,我在<script>
标签之间有一个 JavaScript 函数。刚才我注意到整个模板是由 Fluid 渲染的(对吗?)。因此,它应该在我的标签function (){...}
中使用我的 JavaScript 函数的大括号 ( ) 做一些事情(或者更确切地说不应该,因为它是 javascript 并且不应该被 Fluid 考虑) 。<script>
正确的?情况似乎并非如此,因为我的代码一直有效。我想知道为什么它总是有效?TYPO3 是否识别脚本标签并忽略其中的所有内容?顺便说一下,这是 TYPO3 6.2。
现在更重要的问题是:如何在我的<script>
标签之间的 javascript 函数中访问我通过控制器分配给视图的关联数组?我在我的javascript函数中尝试了类似的东西var x = {test_variable}
,但这不起作用。这暗示了 JavaScript 中的大括号不会被 Fluid 解释。但我找到了声称它们是的消息来源。然而,在我的情况下,Fluid 似乎忽略了大括号。这解释了为什么我的 javascript 一直有效。我很困惑,因为我无法解释所有这些事情。无论如何,那么如何在我的 JavaScript 中访问分配给控制器中视图的变量?我希望我的意思很清楚。
解决方案
简而言之,得到答案。这似乎是 TYPO3 中的缓存/渲染错误。一个有效的解决方法是围绕导致条件问题的代码。
所以
...
var x = {test_variable}
...
可以写成
<f:if condition="1">
...
var x = {test_variable}
...
</f:if>
感谢@Robert 对Bernd Wilke 的回答
的研究和评论
(这个错误仍然存在于 TYPO3 v9.5.23 中。未在 V10.4 中测试)
推荐阅读
- xquery - Xquery - 将属性附加到所有元组
- postgresql - 如何创建触发函数?
- sql - 如何识别在同一行的字段/列中具有重复值的行
- android - Android Studio Gradle 项目同步失败
- jwt - JWT 中的 sharedSecret 是什么
- javascript - 解析html ajax结果并将其数据值与dom进行比较
- ruby-on-rails - 如何将字符串分成三部分(数字、数字、空格)?
- sql - Junit 测试失败
- python - 用什么来代替 NavigationToolbar2TkAgg?
- node.js - 如果在 ExpressJS 中间件中传递额外的变量会发生什么?