对于twig模板文件,我想将js内容与HTML内容分开,因此我创建了一个.js文件


包含以下内容:


 {%if form.vars.data not null%}
功能downloadInvoice(){
 window.location ='{{path('ziiweb_billing_bill',{'id':form.vars.data.id})}}';
 }
 {%endif%}

 function updateTotals(){
 $('#service_download_pdf')。css(“pointer-events”,“none”);
 $('#service_download_pdf')。attr(“disabled”,“true”);

&#xA;&#xA; 我使用此行添加:< / p>&#xA;&#xA;
&lt; script type =“text / javascript”src =“/ bundles / ziiwebbilling / js / service_form.js”&gt;&lt; / script&gt;&# xA;
&#xA;&#xA; 但是出现此错误:
&#xA;&#xA;&#xA;&#xA;SyntaxError:期望表达式,得到'%'{%如果form.vars.data不是&#xA; null%}
&#xA;
答案 0 :(得分:1)
你不能将twig放入你的js文件中。但是要将twig变量传递给js文件,你需要在你的twig文件中有一个脚本,如下所示:
twig file
<script>
//var data = {{ form.vars.data|default('') }};
// I think it's better to pass the url directly
{% if form.vars.data is not null %}
var url = '{{ path('ziiweb_billing_bill', {'id': form.vars.data.id}) }}';
{% endif %}
</script>
<script type="text/javascript" src="/bundles/ziiwebbilling/js/service_form.js"></script>
service_form.js
if (typeof url === 'undefined') {
// If the url exists
}
此外,还有一个公开路由https://github.com/FriendsOfSymfony/FOSJsRoutingBundle
的捆绑包最后,如果测试有效,则不应定义js函数,但是应该在运行函数时检查