我想知道如何访问symfony2中另一个html.twig文件中的javascript函数。假设我们有两个html.twig文件:file1.html.twig和file2.html.twig。我们还假设他们的代码如下:
file1.html.twig的代码:
<html>
<head>
<script>
function validate(){
//the code that I need to put here to run the javascript function executer() which exists in file2.html.twig
}
</script>
</head>
<body>
<form id="EventForm" action='{{path('ikproj_groupe_homepaeventsAdd',{id:idg})}}' method="POST" {{ form_enctype(form) }} onsubmit="validate();">
//here is the form content.
</form>
</body>
</html>
file2.html.twig的代码:
<html>
<head>
<script>
function executer(){
//the function content
}
</script>
</head>
<body>
</body>
</html>
实际上,我想要做的是提交file1.html.twig中的一个表单,将在文件file2.html.twig中执行函数executer()。是否有可能在Symfony2中做到这一点??如果是的话,我应该把什么放在文件file1.html.twig的函数validate()中?
答案 0 :(得分:2)
您可以将javaScript放入其自己的twig文件中,并根据需要将其包含在其他twig文件中。
示例(仅为完整性传递参数);
executer.html.twig
<script>
function validate(){
// javascript function executer()
var foo = {{ foo }};
}
</script>
file1.html.twig
<html>
<head>
{% include "executer.html.twig" with {'foo': 10} %}
</head>
<body>
<form id="EventForm" action='{{path('ikproj_groupe_homepaeventsAdd',{id:idg})}}' method="POST" {{ form_enctype(form) }} onsubmit="validate();">
//here is the form content.
</form>
</body>
</html>
File2.html.twig
<html>
<head>
{% include "executer.html.twig" with {'foo': 20} %}
</head>
<body>
</body>
</html>
答案 1 :(得分:0)
您还可以将该函数放入一个在两个文件夹中加载的JS文件中。
//mycustomjsfile.js
function executer(somevariable){
//more codes..
}
function validate(somevariable){
executer(somevariable);
//more codes..
}
//twig file1
<head>
<script src="path/to/js/file"></script>
<script>
function validate({{somevariable}}){
file2.html.twig
}
</script>
</head>
//twig file2
<head>
<script src="path/to/js/file"></script>
<script>
function execute({{somevariable}}){
file2.html.twig
}
</script>
</head>
请注意,如果需要其他数据,您可以传递变量进行验证并添加参数以执行。