gpt4 book ai didi

javascript - 如何使 twig 全局变量在 javascript 库中可访问

转载 作者:行者123 更新时间:2023-12-01 01:19:51 24 4
gpt4 key购买 nike

我正在重构一个 twig 模板,其中包括大量的 javascript 函数,这些函数应该组织到一个单独的库中,以使结构远离逻辑。所以我移动了它们并链接了库,如下所示:

<script type="text/javascript" src="../global/jscripts/jslibrarytest.js"></script>

这里的问题是其中一些库正在使用 twig 全局变量。大多数功能可以正常工作,但有些功能不能正常工作。

我尝试通过 html 代码传递它并通过 jquery (test1) 接收它,但我无法使其工作。然后我尝试直接访问它。

我的模板包含如下内容:

<div id="twig-vars" data-test="{{ twig_variable }}"></div>
<script>
$(".boton-excel").click(function() {
$("#target_data").val(fooFunction);
alert({{ twig_variable }});
});
</script>

外部 JavaScript

function fooFunction(){
var test1= $('#twig-vars').data('test');//
var test2= "{{ twig_variable }}";
var test3= {{ twig_variable }};//syntax error
alert(test1);
alert(test2);
}

警报中的输出是:

  1. 测试 1 => 未定义
  2. 测试 2=> {{ twig_variable }}
  3. twig_variable => 成功

最佳答案

您不需要添加额外的 html 来将变量传递给 twig,如此处所示

Twig 文件

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script>
var my_route = {% if URL_Symfony_dev is defined %}'{{ URL_Symfony_dev }}'{% else %}null{% endif %}
</script>
<script src="scripts/functions.js"></script>
</body>
</html>

functions.js

$(function() {
alert('The route is '+my_route);
});

关于javascript - 如何使 twig 全局变量在 javascript 库中可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54329523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com